|
My Public Key (GPG)
|
My Sign|
Travel Snaps|
Blog
|
Fork my (GitHub) projects!
|
Kundavai Kesavan
##############################################################################
# auth : hi@kesavan.info
# date : 2016-06-22
#
# Updated version always avail at
# 1 - https://github.com/kesavanm/handy-tools/ (quick-commands) and/or
# 2 - https://kesavan.info/books.pl ( quick-commands-web-dev.txt )
#
# SELFNOTE - Keep this sync with Work & GitHub & ownCloud
##############################################################################
VI(M)
The following commands could be entered to display the information shown.
=========================================================================
:echo @% def/my.txt directory/name of file
:echo expand('%:t') my.txt name of file ('tail')
:echo expand('%:p') /abc/def/my.txt full path
:echo expand('%:p:h') /abc/def directory containing file ('head')
:set hlsearch
:set incsearch #perform incremental searches as you type
:set smartcase
:hi! link Comment Comment # Hide the commands
:hi! link Comment Ignore # Show the comments
:setlocal noautoindent nocindent nosmartindent indentexpr= nonu (:set autoindent)
:setlocal nocindent
:setlocal nosmartindent
:setlocal indentexpr=
:diffoff & :diffthis # Turn Off/On Colors during Diff
:diffupdate
:set tabstop=4 shiftwidth=4 expandtab # Tab to 4 WHITESPACE
:retab
:set tabstop=4 noexpandtab # 4 WHITESPACE to Tab
:%retab!
:set syntax=whitespace #show spaces
:set listchars=tab:▸\ ,eol:¬ #show tabs,eol
:set ts=4
:set et
:659,723retab! #tabs to 4spaces from 659 to 723 lines
:so % " :source (current file name) or :so $MYVIMRC(currently active .vimrc)
vimdiff commands
]c : - next difference
[c : - previous difference
do - diff obtain
dp - diff put
zo - open folded text
zc - close folded text
:diffupdate - re-scan the files for differences
syntax off
set nohlsearch
set t_Co=0 # 7/8 colors ,
C-W C-W #lets you toggle between the diff columns
:set diffopt+=iwhite #To avoid whitespace comparison
CTRL+W twice #lets you toggle between the diff columns
ctrl-w l ctrl-w h #vim philosipy h-left , l-right
Turn-On mouse
=============
:set mouse=a <>
:set mouse=n <>
:set ttymouse=xterm2
Vim-as-IDE
==========
ctags -R --languages=php . # Make a tags file
ctags -R --links=no --languages=php --exclude=*.html,*.js,*.css .
:set tags=$project/tags # Set that in .vimrc
Ctrl+] - Goto Definition # Play around
Ctrl+t - Back to Code
autocmd setlocal tags=/path/to/your/global/c/tags,./tags;/,tags;/
:set foldmethod=indent
:set foldlevel=2 # 9 - off ; 0 - class level ; 1,2,3 ...
vertical-edit
=============
ctrl+shift+v (or ctrl+v) # select the column
r to replace highlighted text,
d to delete,
c to change... etc.
shift+i to insert text at the beginning of the column,
shift+a to append text
ESC #when done. !!!DONT FORGET ME!!!
explorer
========
:e ~/path/to/file - Opens the file as a buffer.
:sp ~/path/to/file - Opens the file in a new (Window) view port.
:Bclose - Close the particular buffer. :q should be avoided unless need.
:tabe ~/path/to/file - Opens for edit in a tab. Use :tabclose once done.
:Sex ~ or :Sexplore - Opens a quick (split) explorer of the argument (Home dir ~ in this case)
:Tex & :Vex - Native vim options beside :Sex
mc # midnight commander
C-o # switch to shell <> shell
A-s # search pattern, the cursor will jump to the matches sequentially
C-\ # directory hotlist
BASH
Find files (man find ; or link http://en.wikipedia.org/wiki/Find)
=================================================================
find /home/tmpdir -type f -name "*string*" -print # f-file d-dir l-link -iname “*.pl”
find ~ -name \*.c -print #Instead of doing things this way, you should enclose the pattern in quotes or escape the wildcard
# Expressions & RANGES
# xtime # x in - data (m)odified ; data+inode+permission (c)hanges ; file read-only (a)ccess
# -n - less than n days (RECENT CHANGES)
# +n - more than n days (OLDER CHANGES)
# n - exactly n days
#
# ( expr ) Force precedence.
# ! expr True if expr is false.
# expr1 expr2 And (implied); expr2 is not evaluated if expr1 is false.
# expr1 -a expr2 Same as expr1 expr2.
# expr1 -o expr2 Or; expr2 is not evaluated if expr1 is true.
#
find . -ctime n # File's status was last changed n*24 hours ago
# (data+inode+permission changes )
find . -mtime -7 # File's data was last modified 7*24 hours ago
# finds files changed in the last week
find . -mtime -7 -type f # file's data modified less than 7 days ago
find www/code/ -mtime 8 -mtime -10 -iname "*.pl" # perl files modified less than 10 days & more than 8 days ago
# ie , modified between 8-10 days
find ~ -type f -name test.txt -newermt 2014-11-04 ! -newermt 2014-11-04 # files modified between dates
find . -type f -name '*.php' -mmin -60 # php files modified in last one hour
#find with REGEX - Read more if need : -regextype posix-extended
find ~ ! -regex '.*/\..*' -type f # REGEX to filter non-hidden files/directories/links
find ~ -regex '^(?!\.)(.*)todo.*' -type f # REGEX to filter *todo* files/directories/links
find ~ -type f ! -regex '.*/\..*' -a -regex '.*todo.*' # REGEX to filter non-hidden *todo* files
find ~ -type f \( -regex '.*/\..*' \) -regex '.*todo.*' # REGEX to filter hidden *todo* files
Find & Grep # list files with patterns
===========================================
# Combining find & grep is strongly depreciated ; Just for learning. Go with GNU grep (below)
find . -name "*.php" -exec grep -H "some_string" {} \;
find / -iname "*checkin*" -exec grep 'Confirm Password' {} \;
find . -type f -exec grep -H PATTERN '{}' \; 2>/dev/null #NO SYMB LINK FOLLOW
find . -name '*php' -exec grep -ilHn --color=always pattern {} \; -exec grep -n pattern {} \;
Grep files with a particular string in the file name
====================================================
grep -rH "string" www/code/ # -r recursive
grep -ir -E 'get|wcl' sample.php|tail # -i case-insensitive
grep -H ERROR www/log # -H force to print --with-filename; default nature
grep -C3 error www/log # -Cn prints n lines before & after the matching lines
# -(A)bove (B)elow (C)ombined
grep -ir --include \*.php pattern ./* # only particular file type , recursive
grep-with-regex
===============
ifconfig | grep -E 'inet\W' |awk -F ":" '{print $2}' |awk '{ print "\033[1;34m" $1 "\033[0m" }'
#Numbering the occurance
perl -ne 'print ++$a." $_" if /pattern/' file.ext
#recursive statistics on file types in directory
================================================
find . -type f | sed 's/.*\.//' | sort | uniq -c
16 avi
29 jpg
136 mp3
3 mp4
#fzf - quick find/search for a file
updatedb --require-visibility 0 -o ~/.locate.db #indexing locally
locate
Xargs
=====
ll /tmp/*wsdl-bou*|grep 'Jul 24'|awk '{print $9}'|xargs rm # list files of date & remove them
ls -a | grep \~ | xargs mv -t tmp+bak+tilde # list files with ~ & move them
Search for a file for all users with matching pattern:
======================================================
for user in bsatishraj btata gkasim kmuthuvel kthokala ktoufique pdurgaprakash rkema_old smareddy smareddy-old smatte snagotu vgunnam; do for envdb in `find /data/$user -maxdepth 5 -type f -name 'env_db.php'` ; do grep -E 'BE_DB_DATABASE|BE_DB_SLAVE_DATABASE|BE_DB_WEATHER_DATABASE' $envdb|grep 'define(' |awk {'print $2 '}|sort|uniq |xargs echo -e "$user - $envdb \t\t -" ; done; done
Explanation
============
kmuthuvel@localhost:atlas:~$ for user in kmuthuvel;
> do
> for envdb in `find /data/$user -maxdepth 5 -type f -name 'env_db.php'` ;
> do
> grep -E 'DB_DATABASE|DB_SLAVE_DATABASE|DB_WEATHER_DATABASE' $envdb |
> grep 'define(' |
> awk {'print $2 '}|
> sort|
> uniq|
> xargs echo -e "$user - $envdb \t\t -"
> done;
> done
kmuthuvel - /data/kmuthuvel/code/core/config/env_db.php - old_db shard01
kmuthuvel - /data/kmuthuvel/code-xyz/core/config/env_db.php - km_db shard01
kmuthuvel - /data/kmuthuvel/archive/code/core/config/env_db.php - km_db newdb shard01
kmuthuvel - /data/kmuthuvel/new/core/config/env_db.php - km_db shard0
kmuthuvel@localhost:atlas:~$
Alias
=====
alias ls="ls --color"
alias phpk="php -d display_errors=1 -d error_reporting=E_ALL -l"
alias phpx="php -d xdebug.profiler_output_dir=$HOME/profile -d xdebug.profiler_enable=On"
ln -s for new development env
=============================
ln -s /data/kmuthuvel/kmcode /srv/www/b3.com/www/public_html/kmcode #data to public_html
ln -s /srv/www/b3.com/www/public_html/kmcode /srv/www/b3.com/www/ #public to www
SED / AWk
=========
sed -n -e 's/.*\(.*\)<\/name>.*/\1/p' persons.txt #kesavan
Mount Disk list
===============
sudo lsblk -o NAME,FSTYPE,SIZE,MOUNTPOINT,LABEL
sudo fdisk -l
sudo cat /etc/fstab # Currently mounted items
sudo ls /dev
kmuthuvel@localhost:atlas:~$ for user in bsatishraj ktoufique kthokala rkema gkasim snagotu vgunnam pdurgaprakash ; do echo $user `grep km_db /data/$user/code/core/config/env_db.php|wc -l`; done;
$ export PS1="\[\e]0;\w\a\]\n\[\e[32m\]\u@\h \[\e[33m\]\w\[\e[0m\]\$"
#TODO
ps -elF|head -1;ps -elF| grep listen_for_events_pa
ps -elf|head -1;ps -elf| grep listen_for_events_pa
rss in ps are resident ; resident set size;the non-swapped physical memory that a task has used (in kiloBytes)(alias rssize, rsz).
RES in top ? (may be RSS of ps? . I assume so!
htop
echo -ne $(cat color-coded-file.txt | sed 's/$/\\n/' | sed 's/ /\\a /g') #read your files with colors
shopt -s -o ignoreeof #prevent accidental logout
Disk Usage
==========
du -sch * 2>/dev/null # disk usage by every file/directory
du -sch * 2>/dev/null |tail -1 # disk usage by current directory
du -sch * 2>/dev/null |sort -hr # disk usage , sort by size
du -sh * | sort -hr |head -10 # disk usage , top 10
Permissions:
============
Permissions take a different meaning for directories.
read - determines if a user can view the directory's contents, i.e. do ls in it.
write - determines if a user can create new files or delete file in the directory. (Note here that this essentially means that a user with write access toa directory can delete files in the directory even if he/she doesn't have write permissions for the file! So be careful with this.)
execute - determines if the user can cd into the directory.
DIFF
diff --old-group-format=$'\e[0;31m%<\e[0m' --new-group-format=$'\e[0;33m%>\e[0m' --unchanged-group-format=$'\e[0;32m%=\e[0m' /home/tmpdir/migrating_active_collections_report.php code/core/goodyear/scripts/migrating_active_collections_report.php
diff --old-group-format=$'\e[0;31m%<\e[0m' --new-group-format=$'\e[0;32m%>\e[0m' --unchanged-group-format=$'\e[0;32m%=\e[0m' /home/tmpdir/migrating_active_collections_report.php code/core/goodyear/scripts/migrating_active_collections_report.php
diff --old-group-format=$'\e[0;31m%<\e[0m' --new-group-format=$'\e[0;32m%>\e[0m' /home/tmpdir/migrating_active_collections_report.php code/core/goodyear/scripts/migrating_active_collections_report.php
MYDIFF
diff --new-line-format="%dn%L" --old-line-format="%dn%L" --unchanged-group-format="" --old-group-format=$'\e[0;31m%<\e[0m' --new-group-format=$'\e[0;32m%>\e[0m' /home/tmpdir/migrating_active_collections_report.php code/core/goodyear/scripts/migrating_active_collections_report.php
CRONJOBS
crontab -l >.crontab ;vi .crontab ; sleep 2 && crontab .crontab # Current cronjobs , saved locally
alias crontab="vi ~/.crontab" # Edit cron jobs directly
# Refer : http://unix.stackexchange.com/questions/136350/recover-cron-jobs-accidently-removed-with-crontab-r
/var/spool/cron/crontabs/* # Backup this regularly
BASH ERROR REPORTING
err_report() { echo "Error on line $1"; }
trap 'err_report $LINENO' ERR
WORKING WITH FILES STARTS WITH CHAR '-'
ls ./-sample-idotic-file
Check who configured what:
==========================
for user in `/bin/ls /data/`; do for envdb in `find /data/$user -maxdepth 5 -type f -name 'env_db.php'` ; do grep -E 'DB_DATABASE|DB_SLAVE_DATABASE|DB_WEATHER_DATABASE' $envdb|grep 'define(' |awk {'print $2 '}|sort|uniq |xargs echo -e "$user - $envdb \t\t -" ; done; done
TEE
===
((main_job|tee /dev/fd/5|job_1 >/dev/fd/4)5>&1|job_2)4>&1
((main_job|tee /dev/fd/5|(job_2 >/dev/fd/4))5>&1|job_1)4>&1
(( ps -ef | tee /dev/fd/5 |grep wow >/dev/fd/4 ) 5>&1 | grep cmprod)4>&1
IRC
/msg nickserv identify kesavan
MySQL
-- PROCESSLIST
SELECT * FROM INFORMATION_SCHEMA.PROCESSLIST WHERE Command='Query' AND `INFO` LIKE 'SELECT %' ORDER BY STATE ;
-- Pager MySQL > PAGER(STDOUT) > STDOUT
\P grep -v Sleep -- (\P === pager) -- MySQL > PAGER(grep) > STDOUT
pager grep -v Sleep | more;
SHOW FULL PROCESSLIST; -- OR whatever SQL
\P -- Default pager wasn't set, using stdout. '
-- More on Pager
mysql> pager less /** http://www.percona.com/blog/2008/06/23/neat-tricks-for-the-mysql-command-line-pager/ **/
-- Find Column & Tables
SELECT DISTINCT TABLE_SCHEMA,TABLE_NAME,COLUMN_NAME FROM INFORMATION_SCHEMA.COLUMNS
WHERE
COLUMN_NAME LIKE '%order%' AND
TABLE_NAME LIKE '%867%' AND
TABLE_SCHEMA IN (SELECT DATABASE());
SELECT DISTINCT TABLE_SCHEMA,TABLE_NAME FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME LIKE '%kesavan%' ;
-- METADATA
-- select table_schema,table_name,create_time from information_schema.tables where table_schema like 'kmuthuvel5' limit 5 ;
--REGEXP
SELECT id,book_name FROM books WHERE Order_Status REGEXP 'Time|Relativity|Gravity';
--STRING
mysql> select customer_id,substring_index(substring_index(xml_log,'',-1),' ',1) lob
-> from kmuthuvel.orders_xml where order_id = 12345;
-- Copy Table
CREATE TABLE km_dup.table1 SELECT * FROM km_orig.table1
-- SQL to fetch latest from same table V1
SELECT * FROM (SELECT id,customer_id,note,date_created FROM customer WHERE customer_id = 123 AND note LIKE 'Customer not happy%' ORDER BY id DESC ) AS LATEST GROUP BY customer_id
-- SQL to fetch latest from same table V2 Tuned
SELECT ccn.id , ccn.customer_id ,ccn.note , ccn.date_created FROM customer ccn LEFT JOIN customer ccn2
ON (ccn.customer_id = ccn2.customer_id AND ccn.date_created < ccn2.date_created AND ccn.note = ccn2.note
) WHERE ccn2.date_created IS NULL AND ccn.customer_id = 123 AND ccn.note LIKE 'Customer not happy%' ;
-- Example V1
SELECT * FROM ( SELECT id,customer_id,note,date FROM customer_log ORDER BY id DESC ) AS LATEST
GROUP BY customer_id ORDER BY date DESC ;
-- Example V2
SELECT c1.* FROM customer_log c1
LEFT JOIN customer_log c2 ON (c1.customer_id = c2.customer_id AND c1.date < c2.date )
WHERE c2.date IS NULL ;
SELECT id,report_id, CONVERT(params USING utf8) params,last_updated ,run_every,notes,active FROM autoreports ORDER BY id DESC LIMIT 5;
TIGGERS
========
mysqldump --routines --no-create-info --no-data --no-create-db --skip-opt -hlocalhost --ukmuthuvel -pXXXXXXXXXXXX my_database > ~/my_database.routines.sql
mysql -hlocalhost -ukmuthuvel -pXXXXXXXXXXXX kmuth_new < my_database.routines.sql
mysqldump -h -u -p --no-data --no-create-db --no-create-info --skip-opt --triggers > trigger.sql
SUB-SQLs
========
LEFT JOIN (a INNER JOIN b ON b.id = a.attr_id AND b.name = 'key_attr' ) ON a.order_id = o.id -- optimal
LEFT JOIN a ON a.order_id = o.id AND a.attr_id = (SELECT id from b WHERE name = 'key_attr') -- 6x slow
LEFT JOIN a ON a.order_id = o.id AND a.attr_id = 123 -- 2x slow, hardcoded
Disable/Enable Strict mode
====================
SELECT @@GLOBAL.sql_mode;
SET @@GLOBAL.sql_mode=''
SET @@GLOBAL.sql_mode='ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION'
PHP
ob_start();var_dump(); user_error(ob_get_contents()); ob_get_clean();
debug_print_backtrace()
php -d display_errors=1 -d error_reporting=E_ALL -l #
define('DEV',0);
if(DEV) error_log(date('c')."\t ==>$sql<== with ==> ".var_export($anything,true)."<== \n",3,"/tmp/dev.log");
echo ""; print_r($_POST);
echo ""; var_dump($_POST); exit;
service php-fpm restart
Syntax Error here";
Try-Catch
=========
try{
$response = $client->ValidateUser("kesavan", "Password1",'DE'); #SERVICE
}catch (Exception $e) {
echo "Caught exception:".get_class($e)."\n{$e->getMessage()}\nIn file:{$e->getFile()} at line #{$e->getLine()}\n{$e->getTraceAsString()}\n";
throw $e;
}
Custom Profiler
================
self::profiler('Going to kill me!!! ');
$total_orders = count($orders); $i =1;$startTime= microtime(true);
public static function profiler($msg){
$message = date('Y-m-d H:i:s')." Memory:".round(memory_get_usage()/(1024*1024)).
"MB MemoryPeak:".round(memory_get_peak_usage()/(1024*1024))."MB \t".
number_format(( microtime(true) - $startTime), 4)." Seconds \t".
.var_export($msg,true)."\n";
error_log($message,3,'/tmp/sql.log');
}
Color'd echo
============
echo " \e[1;34m ". date(c)." \e[35m error-message \e[0m ";
Included files/functions
========================
var_dump(get_defined_functions());
var_dump(get_included_files());
Custom Error Backtracing
========================
$caller =debug_backtrace(DEBUG_BACKTRACE_IGNORE_ARGS,2)[1]['function'];
$caller2 =debug_backtrace(DEBUG_BACKTRACE_IGNORE_ARGS,3)[2]['function'];
echo date('c')."\t".__FILE__.__CLASS__. __METHOD__ . __LINE__ . "leaving now \n";
echo date('c')."\t". __FILE__.__CLASS__."Inside method:". __METHOD__."@ line#" . __LINE__ ."Called by:$caller | calling getResults \n";
echo date('c')."\t".__CLASS__."Inside method():".__METHOD__."@ line#".__LINE__."==>".var_export($incFile,1)."<==\n";
echo date('c')." ".basename(__FILE__)."|". __METHOD__."|".__LINE__.'==>calling:Basic_report->genericAutoReport<=='."\n";
echo date('c')." ".basename(__FILE__)."|". __METHOD__."|".__LINE__."==>is_auto\n";
Console-Table foramtted output
==============================
$x = include 'data.php'; # input array
$mask = "|%5.5s |%-20.20s| %-13.13s |\n";
printf("+------------------------------------+\n");
printf($mask,'brand','brand_name','aliases');
printf("+------------------------------------+\n");
foreach ($x as $brand => $data)
list($brand_name,$aliases) = $data;
printf($mask,$brand,$brand_name,$aliases);
printf("+-------------------------------------+\n");
progressBar
===========
function progressBar($done, $total) {
$perc = floor(($done / $total) * 100);
$left = 100 - $perc;
$write = sprintf("\033[0G\033[2K[%'={$perc}s>%-{$left}s] - $perc%% - $done/$total", "", "");
fwrite(STDERR, $write);
}
MemCache
echo 'flush_all' | nc localhost 11211
GIT
Normal Flow
===========
git status #Show the current status
git branch new_enchancements #Creates new Branch (Local)
git checkout new_enchancements #Switch to branch (new_enchancements)
git checkout -b new_enchancements #Creates & Switch to new_enchancements branch (Local)
git add file.php #Adding new file to git
git commit -m "Fixed,all files" #Commit the file
git push origin new_enchancements #Send to origin
git checkout --f new_enchancements #Switch to branch by force
git remote -v #git remote info
git reset filename.txt #remove a file from the current index, the "about to be committed" area,
#without changing anything else.
git reset #undo `git add .`
git -c color.ui=always #force color output
Branching
=========
Always create new branch from `development` only. Else you may conflicts raising from the branch from where you create the new.
Right-way:
==========
-------new-feature----------> 5 changes (new feature added )
/
-------/--------development----------> 0 changes (upto date with master)
\
\---hotfix-------> 2 changes (quick hotfix;go by eod )
0 ---- 1 ---- 2 ---- 3 ---- Time --->
Avoid:
=====
/---hotfix-------> 7 changes (combines with new feature)
/
-------new-feature----------> 5 changes (new feature added )
/
-------/--------development----------> 0 changes (upto date with master)
0 ---- 1 ---- 2 ---- 3 ---- Time ---->
Save changes to temp & goto other branch & come back
====================================================
$git branch #list branches #10:00 AM
development
*my-branch
master
$git status #current status #10:30 AM
modified:
abc.txt
$git stash #move changes to temp location #10:31 AM
$git checkout very_new_branch #switch to other branch #10:40 AM
$git add new.file.ext #work on other branch #02:30 PM
$git commmit -m 'Fixed issues;' #commit the changes #02:40 PM
$git checkout my-branch #back to original branch #03:00 PM
$git stash pop #get the changes from stash #03:03 PM
Revert to previous commit
=========================
git reset --hard 2454tb6
git push -f origin kmuth-branch
submodules
==========
git submodule add [-b master --depth 1] https://github.com/junegunn/fzf.git # add/init
git submodule init
git submodule update --init --recursive # update
git submodule deinit -f - fzf; rm -rf .git/modules/fzf; git rm -f fzf # remove/deinit
Revert To Original/Old - Entire directory (code base)
=====================================================
git pull ?
git stash; git fetch origin; git reset --hard origin/development #Entire directory to REMOTE_MASTER/REMOTE_BRANCH
git reset --hard df2bcfac7cabc0fd14d5c5abce22d65589e458a1 #Entire directory to particular version
Revert To Original/Old version - File level (single file)
=========================================================
git checkout -b old_is_gold #Creates & Switch to branch old_is_gold
git checkout HEAD path/to/file #Single File , from Master
git checkout d279318b40657be62accea2130ef2fdf9b150b26 -- [full/path] #Single File , from particular commit
Revert To Original/Old version - Branch level (From remote into local) (Multiple files)
=======================================================================================
git checkout -b old_local_branch #Creates & Switch to branch old_local_branch
git merge --no-ff old_remote_gold #Auto-merging from old_remote_gold to old_local_branch
git push origin old_local_branch #Push changes to origin again
Get changes from master into branch in git
============================================
git rebase master
Pick & Squash
=============
git rebase -pi development # If nothing shows on squash , try -i only
pick f7f3f6d commit 1
squash 310154e commit 2
squash a5f4a0d commit 3
git push -f origin hot-fix-branch
git rebase -pi development
#first on as pick , rest all squash
>> Refusing to squash a merge: 7daa8381fc40294b9616ebe28466a0cc2aabdca3
git status
>>rebase in progress; onto 3f688ad
>>You are currently editing a commit while rebasing branch 'kmuth-hot-fix' on '3f688ad'
git rebase --continue
#removed all the commit messages
>>Successfully rebased and updated refs/heads/kmuth-hot-fix.
git push -f origin kmuth-hot-fix
#Messed with some other branch stuff ?
git branch -D feature_branch
git checkout developemnt
git fetch origin && git pull
git checkout feature_branch
git log
# pick some recent 4-5 old commit
git rebase -i b223f604 # or git rebase -i HEAD~5
#pick/drop/squash
git push -f origin feature_branch
Undo rebase
===========
git reflog --date=iso branch #1 of 3 - REFLOG the current branch
git reset --hard 81ca2476a4 #2 of 3 - RESET to COMMIT before rebase
git push -f origin branch #3 of 3 - Just PUSH, nothing to commit/add
Example
~~~~~~~
$git reflog --date=iso faq2
5e887715b9 (HEAD -> faq2, origin/faq2) faq2@{2020-03-30 12:45:58 -0500}: rebase -i (finish): refs/heads/faq2 onto 6b1b4c68c24976163da779b1701a9da461882d31
cb991118aa faq2@{2020-03-30 12:44:27 -0500}: commit: revert of other misc files
132a17e7d7 faq2@{2020-03-30 12:35:50 -0500}: rebase -i (finish): refs/heads/faq2 onto 6b1b4c68c24976163da779b1701a9da461882d31
81ca2476a4 faq2@{2020-03-30 12:34:21 -0500}: commit: little tuning
ba6fcc377c faq2@{2020-03-30 12:02:34 -0500}: branch: Created from refs/remotes/origin/faq2
0 ✓ success ^_^ ________________________________________________________________________________
kmuthuvel@L18726(98.198.59.144)|/srv/www/code_de|2020-03-30 13:13:09[faq2]
$git reset --hard 81ca2476a4
HEAD is now at 81ca2476a4 little tuning
0 ✓ success ^_^ ________________________________________________________________________________
kmuthuvel@L18726(98.198.59.144)|/srv/www/code_de|2020-03-30 13:15:17[faq2]
$git push -f origin faq2
Squashing with conflict resolved merges
=======================================
git checkout development # Move to development
git branch -D hf_with_5changes_8commits # Delete from locally
git pull origin development # Make sure git is upto date
git checkout -b hf_with_5changes_8commits # Create & checkout from development
git apply ~/5changes.patch.diff # Apply the diff (from gitlab) on
git push -f origin hf_with_5changes_8commits # Git push all the final changes
Patch apply
===========
git apply --stat ~/fix_affleck_upload.patch
git apply --check ~/fix_affleck_upload.patch
git apply ~/fix_affleck_upload.patch
git add
git commit -m "patch added"
git push origin
Copy branch to branch
=====================
git checkout -b new_branch old_branch
Example
=======
git checkout development
Switched to branch 'development'
Your branch is up-to-date with 'origin/development'.
git merge --no-ff heavy_reports
Auto-merging sonar/system/application/views/reporting.php
Auto-merging core/build/classes/core/reporting/classes/orders_report.php.php
Auto-merging core/build/classes/core/reporting/classes/KPI_Report.php
CONFLICT (content): Merge conflict in core/build/classes/core/reporting/classes/KPI_Report.php
Automatic merge failed; fix conflicts and then commit the result.
git push origin development
Everything up-to-date
Get single file from different branch from remote
=================================================
cd /data/kmuthuvel/code #go to top code level
git checkout origin/diff_branch full/path/to/file.ext
git checkout origin/smt_usage_emails core/build/classes/core/ercot/SmtDataDailyPeer.php
git checkout origin/master #to live
Clean
======
git clean -f # remove-local-untracked-files
Remove/Delete remote/local branch
=================================
git branch -d #local only
git push origin --delete #remove remote(if you know what you are doing!)
git push origin : #alias of above
Unable to commit ?
==================
To git@198.123.45.678:kmuthuvel/code.git
! [rejected] new_enchancements -> new_enchancements (non-fast-forward)
error: failed to push some refs to 'git@198.123.45.678:kmuthuvel/code.git'
hint: Updates were rejected because the tip of your current branch is behind
hint: its remote counterpart. Integrate the remote changes (e.g.
hint: 'git pull ...') before pushing again.
hint: See the 'Note about fast-forwards' in 'git push --help' for details.
[Option #1]
git push origin --delete new_enchancements #1 remove remote branch
cd /data/kmuthuvel; rm -rf code #2 remove local setup
git clone git@198.123.45.678:kmuthuvel/code.git #3 setup fresh code
git branch new_enchancements (git branch -a) #4 create unique branch
git checkout new_enchancements #5 switch to new branch
... #6 develop changes
git diff #7 verify changes
git status;git add file1 file2 ; #8 add files and status
git commit -m 'Reports enchanced' #9 commit changes
git push -u origin new_enchancements #10 done!
[Option #2]
$git push -u -f origin fix-pogo-bulk-orders
Counting objects: 2, done.
Delta compression using up to 8 threads.
Compressing objects: 100% (2/2), done.
Writing objects: 100% (2/2), 263 bytes | 0 bytes/s, done.
Total 2 (delta 1), reused 0 (delta 0)
remote:
remote: View merge request for fix-pogo-bulk-orders:
remote: https://de-gitlab.engine.host/fireengine/code/merge_requests/3903
remote:
To git@de-gitlab.engine.host:fireengine/code.git
+ a752aaa...cf10736 fix-pogo-bulk-orders -> fix-pogo-bulk-orders (forced update)
Branch fix-pogo-bulk-orders set up to track remote branch fix-pogo-bulk-orders from origin.
git clone over slow network
============================
git clone --depth 10 user@example.org:awesome/project.git project.mini
Diff & Logs
===========
git diff file.ext # Compare latest to Old
git diff a268ab7670c5430a2a98638cb04820516f8b1b9e 85cfd5ae0e4a1d888eb9611d99c6eac2ba92740f orders_report.php.php
git diff HEAD^ HEAD [users_controller.php]
git diff --text # Diff over bin files
#.gitconfig
[diff "hex"]
textconv = hexdump -v -C
binary = true
git log -Spattern -- orders_report.php #accepts a string
git log -Gpattern -- orders_report.php #accepts a regex
git grep [-e] case_sensitive_pattern ro
git grep -i case_insenstive_pattern
git log --grep=word #find all commits where commit message contains given word
git show 211dbe40cd784b06932122f7ba67d656ed438b01 # Particular commit
git diff --unified=0 -- filename.ext # git diff with line numbers (aka git diff -U0)
[TIP] #http://git-scm.com/book/en/v2/Git-Basics-Viewing-the-Commit-History
git log --pretty=format:"%h - %an, %ar : %s" -S'unique_identifier' -- orders_report.php
git log --pretty=format:"%h - %an, %ar : %s" orders_report.php
git log --pretty=format:"%H - %an, %ar : %s" orders_report.php
git log --author=kmuthuvel
git log --author="\(kmuthuvel\)\|\(rms\)|\(einstein\)"
git log --pretty=format:"%h %s" --graph --author=kmuthuvel
git log --no-merges master
git log --all -- this-is-deleted-file.pl #who deletes this file ; tracks all the history of file that got deleted.
git log --all --full-history -- "**/filename.ext" # from the root of repo
#List all the modified files for a commit (better version below)
git diff-tree --no-commit-id --name-only -r 2bc51f53a15da1428f8320d9ee93f8e7069a05a2
#Quick summary on a commit ( --stat & --name-status)
git show --stat --summary 66064dbfb18f2562261588c64f8e74a9c941ab00
git show --name-status a5e347198e93a6ecb69077ac2cd1491337531671
git show --name-only 581c968d50ca3259b94081ac428969184ed51eab
git diff --name-only | xargs ls -lt # latest modified files
git log --name-only --pretty=format:"%H - %h - %an, %ar : %s" --author=kmuthuvel --walk-reflogs my_hot_fix # log on only that specific branch
git log --stat --oneline --pretty=format:"%h - %an, %ar : %s" --author="\(kmuthuvel\)\|\(raju\)" --walk-reflogs welcome-offshore
git log --date=local --pretty=format:\%h%x09%C\(cyan\)%an%x09%ad:%Creset%s parameters.yml.dist
git log --date=short --pretty=format:\%h%x09%C\(cyan\)%ad%C\(green\)%x09%an%Creset%x09%s parameters.yml.dist
#team work on date wise
git log --date-order --date=iso --pretty=format:'%C(cyan)%ad%x08%x08%x08%x08%x08%x08%x08%x08%x08%x08%x08%x08%x08%x08%x08 %C(red)%h %C(bold blue)%aN%C(reset)%C(bold yellow)%d %C(reset)%s' --after="2019-01-01" --author="\(Kesavan\)\|\(kmuth\)"
GIT TIME maching
================
git reflog # ref log on current local repo
# you will see a list of every thing you've done in git, across all branches!
# each one has an index HEAD@{index}
# find the one before you broke everything
git reset HEAD@{index}
# magic time machine
#digging for an info
git log --pretty=format:"%h - %an, %ar : %s" * | grep -i -E 'social|ssn'
#digging log with modified files
git log --name-status --author=kmuthuvel --pretty=format:"%h - %an,%ar| %f : %s " * | grep -A2 -i -E 'social sec|ssn'
git log --graph --pretty=format:"%x09%h | %<(10,trunc)%cd |%<(25,trunc)%d | %s" --date=short
//R-n-d
git log --graph --pretty=format:"%x09%h | %<(10,trunc)%cd |%<(25,trunc)%d | %s" --date=short
git log --graph --pretty=format:'%Cred%h%Creset %ad %s %C(yellow)%d%Creset %C(bold blue)<%an>%Creset' --date=short
git log --graph --pretty=format:'%Cred%h%Creset %ad %s %C(yellow)%d%Creset %C(bold blue)<%an>%Creset' --date=short
git log --graph --pretty=format:"%C(yellow)%H%C(green)%d%C(reset)%n%x20%cd%n%x20%cn%x20(%ce)%n%x20%s%n" --color --all
git log --graph --pretty=format:"%x1b[31m%h(green)%ad %x09%x1b[32m%d%x1b[0m%x20%s%x20%x1b[33m(%an)%x1b[0m" --date=short --full-history --all --color
Changed files:
==============
git diff --name-only development
git log --oneline --pretty="format:" --name-only development.. | awk 'NF' | sort -u
FIX CONFLICTS
=============
git clean -f # clean your local
git fetch origin # fetch all
git checkout -b hot-fix origin/hot-fix # make sure you don't any existing branch with same name
git merge --no-ff origin/development # try to fix automatic and you'll see errors
vim core/conflict.php # remove conflicts manually
git commit -am 'fixed conflicts on 1234' # add and commit to git
git merge --no-ff origin/development # it should work now
git push origin hot-fix # job done
git checkout development # back to development
git branch -d hot-fix # delete the hot-fix that no more need
MISC
=====
git fetch origin
git checkout -b new_enchancements origin/new_enchancements
git checkout development
git merge --no-ff new_enchancements
git push origin development
git checkout development #Always checkout development
git branch
git add file.php #Adding new file to git
git commit -m "Fixed,all files" #Commit the file
git push origin new_enchancements #Send to origin
On branch development
Your branch is up-to-date with 'origin/development'.
git pull
git push -u origin new_enchancements #Send to origin
# quick view on all branches
ORIG=`git branch|grep \* | sed -e 's/\* //g'` ; for i in `git branch|sed -e 's/\* //g' -e 's/ //g'` ; do git checkout $i 1> /tmp/$USER_git_warings.log; if [ /tmp/$USER_git_warings.log ] ; then if [ `grep up-to-date /tmp/$USER_git_warings.log |wc -l` -eq 0 ] ; then ST='-w' ; else ST='-g' ; fi ; cat /tmp/$USER_git_warings.log | msg2 $ST ; rm -f /tmp/$USER_git_warings.log; fi ;git diff --stat --cached origin/$i ; done ; git checkout $ORIG ;
#Git Repository Deleted File Recovery Method
http://www.gitguys.com/how-to-recover-a-deleted-a-file-from-my-git-repository/
Undo a commit and redo
======================
git commit -m "Something terribly misguided" (1)
git reset --soft HEAD~ (2)
<< edit files as necessary >> (3)
git add ... (4)
git commit -c ORIG_HEAD (5)
(Thanks:http://stackoverflow.com/questions/927358)
git commit --amend -m "New commit message" #Amending the most recent commit message
#Edit an incorrect commit message in Git
$git rm --cached #deal with error “Git: fatal: Pathspec is in submodule
Delete the last commit
======================
git reset HEAD^ --hard
git push origin/branch_name -f
#bring a clean env
git update-index --assume-unchanged .gitignore
git update-index --no-assume-unchanged .gitignore
Merge into MASTER
=================
git checkout master
git pull # to update the state to the latest remote master state
git merge develop # to bring changes to local master from your develop branch
git push origin master # push current HEAD to remote master branch
COMPOSER
COMPOSER_MEMORY_LIMIT=-1 composer update
APACHE
Disable/Enable modules
======================
sudo a2dismod php5.6
sudo a2enmod php7.3
AWS/Cloudwatch/Console/InSight
fields @timestamp, @message
| filter @logStream like "web-prod"
| filter @message like "80108216905"
| sort @timestamp desc
| limit 20
fields @timestamp, @message
| filter @logStream like "web-prod"
| filter @message like "MyaccountPay.getWalletInformation.error"
| parse @message '"RequestID":"*",' as @RequestID
| parse @message 'payment_event: order-*-' as @order
| parse @message 'error @*:' as @ip
fields @timestamp, @message
| filter @logStream like "web-prod"
| filter @message like "MyaccountPay.getWalletInformation.error"
| parse @logStream /(?<@brand>([a-z]+))-web-prod/
| stats count(*) by bin(1d)
fields @timestamp, @message
| parse @message /(?<@ip>^([0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3})[.]*)/
| stats count() as requestCount by @ip
| sort requestCount desc
PARSE & ESCAPE & SHOW/HIDE(DISPLAY)
===================================
fields @timestamp, @message , @logStream
| filter @message like 'MyaccountPay.getAutoPayment.error'
| parse @logStream "*-" as @brand
| parse @message "order-*-*OperationResult\":\"*\",*}" as @order_id,@misc, @OperationResult,@rest
| sort @timestamp desc
| display @timestamp, @brand ,@order_id, @OperationResult
fields @timestamp, @message, @logStream
| filter @message like '//powertochoose.'
| filter @message like 'msid/3051/pid'
| parse @message '/texas/electricity-plans/*/msid/*/pid/' as @plan_misc,@msid
| parse @message /(?<@ip>^([0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3})[.]*)/
| parse @message 'utm_source=*&utm_medium=* ' as @utm_src, @utm_medium
| parse @message 'http://*Plan/Results' as @ref
| parse @logStream /(?<@brand>([a-z]+))-web-prod/
| parse @log 'var/log/httpd/*' as @file
Logical OR condition
====================
fields @timestamp, @message ,@logStream , @log
| filter @logStream like 'cruncher-prod-i-0d90d48ac1355ec63'
| filter @log like '457289674159:/var/log/core.log'
| filter @message like /(Importer: Beginning Import files|Importer: Completed Import)/
HTTP Status Code from /var/log/httpd/access_log
================================================
fields @timestamp, @message,@logStream, @log
| parse @message "* - - [*] \"* " as @ip,@datetime,@method,@misc
| parse @misc "* *\" * * * *" as @uri,@protocol,@code,@size,@referer,@user_agent
| fields @timestamp, @message,@logStream
| limit 10
Last 5 500 Error HTTP Status Code from /var/log/httpd/access_log
================================================================
parse @logStream /(?<@brand>([a-z]+))-web-prod/
| parse @message "* - - [*] \"* " as @ip,@datetime,@method,@misc
| parse @misc "* *\" * * * *" as @uri,@protocol,@code,@size,@referer,@user_agent
| filter @code = '500'
| limit 5
| fields @logStream, @log
| display @brand, @ip, @datetime, @method, @uri, @protocol,@code,@size,@referer,@user_agent,@logStream,@log
REGEX with logical OR condition and CASE insensitive condition
===============================================================
fields @timestamp, @message ,@logStream , @log
| filter @logStream like 'fcp-cruncher-prod-i-0d90d48ac1355ec63'
| filter @log like '457289674159:/var/log/fireengine/core.log'
| filter @message like 'ERCOT Importer'
| filter @message like /(?i)(Beginning IMpOrT files|CompleTEd Import)/
| sort @timestamp asc
| limit 10
fields @timestamp,@logStream, @message
| filter @logStream like 'fcp-web-prod'
| filter @message like 'CreateNewAccountNumber'
| filter @message like 'exception="1"'
| parse @message 'action="*"' as @action
| parse @message 'exception="*"' as @exception
| parse @message 'exception_message="*"' as @exception_message
| stats count(*) by bin(1d), @exception_message
Splunk
index="access_log" "/account/login" POST mobile host="de-*" | timechart span="1d" count
index="access_log" "/account/login" POST mobile host="de-*" Android Firefox
host="de-*" index="myaccount_frontend_dce" | table _time customer_id order_id mobile browser platform service_state
host="de-*" 382450 | table _time
host="de-*" "direct-your-energy" sourcetype=fe_metrics | table _time customer_id order_id total_execution_time customer_service_state
host="de-*" uri="*direct-your-energy*" sourcetype=access_log phpsessid!=''|eval session=phpsessid | eval os = case(match(user_agent,"Windows .. 5\.1"),"Windows XP",match(user_agent,"droid"),"Android", match(user_agent,"Windows NT 610"),"Win10", match(user_agent,"Mac"),"Mac", match(user_agent,"Windows NT 6.1"),"Windows 7" ) | eval browser = case(match(user_agent,"MSIE 10.0"),"Internet Explorer 10.0",match(user_agent,"Trident"),"IE11", match(user_agent,"Chrome"),"Chrome",match(user_agent,"Safari/"),"Safari") | eval arch = case(match(user_agent,"droid"),"android",match(user_agent,"iPad"),"ipad",match(user_agent,"iPod"),"ipod") |table os browser uri session|join session [search host="de-*" sourcetype=fe_metrics | table _time session order_id customer_id customer_service_state]
host="de-w*" confirmation_page_trace order_id=2417516 OR order_id=2417512 OR order_id=2417509|rex field=_raw "confirmation_page_trace: (?[^XYZ]+):" | table _time order_id customer_id session_id host method view |sort -_time
host="de-w*" confirmation_page_trace order_id=2417516 OR order_id=2417512 OR order_id=2417509|rex field=_raw "confirmation_page_trace: (?[^XYZ]+):" | table _time customer_id order_id session_id host method view |sort order_id _time
//Multi XML element extraction
host="de-w*" credit_check_id|rex field=_raw "\(?[^\<]+)" | rex field=_raw "\(?[^\<]+)"|table _time credit_check_id order
host="de-w*" credit_check_id|rex field=_raw "\(?[^\<]+)" | rex field=_raw "\(?[^\<]+)"| rex field=_raw "\(?[^\<]+)"|table _time credit_check_id order_id customer_id | sort -_time
index="de_apps_containers" carom rule |table _time _raw
index="de_apps_containers" "apps_apps-nginx" "de-admin" (upstream OR 504)
cakeerror index="tigger_log" | stats count by host | sort - count
cakeerror index="flubbar_log"
index="php_error_log" host="de-w01"
host="de-w*" address-unserviceable | table _time ip host phpsessid| iplocation ip table clientip, status, City,State, Country
host="de-w*" address-unserviceable |table _time ip phpsessid host sourcetype | iplocation ip clientip, status, City,State, Country | stats count by Region | sort - count
"/address-unserviceable" source="*access.log" | convert timeformat="%m/%d/%Y" ctime(_time) AS datex | table datex| stats count by datex
index="de_apps_containers" admin "timed out" proxy_read_timeout 180;
code=5** OR code=4** | stats count by host, code | eventstats sum(count) as hostx by host| eval percent=count/hostx |
table host,code,count,percent|timechart span="1d" count
code=5** OR code=4** | stats count by host, code |timechart span="1d" count
code=5** OR code=4** | iplocation ip clientip, status, City,State, Country|eval os = case(match(user_agent,"Windows .. 5\.1"),"Windows XP",match(user_agent,"droid"),"Android", match(user_agent,"Windows NT 610"),"Win10", match(user_agent,"Mac"),"Mac",match(user_agent,"Windows NT 6.1"),"Windows 7",match(user_agent,"iPhone"),"iPhone")| eval browser = case(match(user_agent,"MSIE 10.0"),"Internet Explorer 10.0",match(user_agent,"Trident"),"IE11", match(user_agent,"Chrome"),"Chrome",match(user_agent,"Safari/"),"Safari") | eval arch = case(match(user_agent,"droid"),"android",match(user_agent,"iPad"),"ipad",match(user_agent,"iPod"),"ipod") | table host code uri method sourcetype request_time referer user_agent os browser ip,City,State, Country
"QuickPay error: msg='Server was unable to process request. ---> CISTranslator.CISTranslatorException: System.NullReferenceException: Object reference not set to an instance of an object." order_id |eval hostx= case(match(host,"de-w*"), "de",match(host,"wtu-w*"), "wtu",match(host,"fcp-w*"), "fcp",match(host,"cpl-w*"), "cpl") |table hostx,_time|timechart span="1month" count by hostx
/api/v1/dye/bill/cycle code=500|table _time phpsessid ip code _raw | eval session = case(match(phpsessid,"-"),"empty", !match(phpsessid,"-"),"not-empty") |
stats count by session | eventstats sum(count) as perc | eval perc=round(count*100/perc,2)
(host="de-w*" OR host="fcp-w*" ) index="access_log" sourcetype="access_log" (date_hour>=4 date_hour<=5) (date_wday=tuesday ) |
eval brand = case(match(host,"de-w"),"de",match(host,"fcp"),"fcp" ) | table _time ip brand
| timechart span="1d" dc(ip) count by brand
(host="de-w*" ) index="access_log" sourcetype="access_log" (date_hour>=5 date_hour<=5) (date_wday=tuesday )|
eval brand = case(match(host,"de-w"),"de",match(host,"fcp"),"fcp")|timechart span="1d" dc(ip)
#7 day weekly view - Peak day reporting
host="de-w*" code=500 index=access_log | convert timeformat="%A" ctime(_time) AS c_time |chart count by c_time
#24 Hour View - Peak Hour reporting
host="de-w*" code=500 index=access_log | convert timeformat="%H" ctime(_time) AS c_time | table uri c_time | chart count by c_time
host="de-w*" code=500 index=access_log | table uri | top limit=20 uri | convert timeformat="%m/%d/%Y" ctime(_time) AS datex | table datex|timechart count by datex
NRQL
SELECT COUNT(*) FROM TransactionError WHERE httpResponseCode = 500 AND `request.headers.referer` LIKE '%/pogo/search' AND SERVER_NAME ='www.example.com' AND timestamp > 1548201600 AND timestamp < 1549584000 AND timestamp > 1549670399 AND timestamp < 1550880000
MS SQL
SELECT TOP 10 * FROM SMT.ESIIDMaster WHERE ESIIDID = 566455 ;
DOS
Netsh
gitlab.yaazhdev.com 198.123.45.678:8080
# route add 198.123.45.678 gitlab.yaazhdev.com
#
# Netsh
# add v4tov4 listenport=8080 connectaddress=gitlab.yaazhdev.com listenaddress=198.123.45.678:8080 protocol=tcp
# netsh interface portproxy add v4tov4 listenport=8080 listenaddress 198.123.45.678 connectaddress=gitlab.yaazhdev.com
C:\WINDOWS\system32>netsh interface portproxy add v4tov4 listenport=8080 listenaddress=198.123.45.678 connectport=80 connectaddress=gitlab.yaazhdev.com
C:\WINDOWS\system32>netsh interface portproxy show v4tov4
Listen on ipv4: Connect to ipv4:
Address Port Address Port
--------------- ---------- --------------- ----------
198.123.45.678 8080 gitlab.yaazhdev.com 80
C:\WINDOWS\system32>
FORFILES
========
forfiles /s /c "cmd /c if @isdir==FALSE echo @path @fsize /S /D +11/04/2016 "
forfiles /P . /S /D +11/04/2016 /c "cmd /c if @isdir==FALSE echo @path @fsize"
Link RESET
==========
C:\WINDOWS\system32>assoc.lnk=lnkfile
.lnk=lnkfile
C:\WINDOWS\system32>
CHANGE Permissions:
==================
takeown /f "C:\Users\kmuthuvel.old" /r
icacls "C:\Users\kmuthuvel.old" /reset /T
Data Recovery
=============
find AppData -iname '*xlsb*' -o -name '*foo*' #excel
find . -iname '*wr*tmp*' #word / temp / auto recovery(wrd,wrf,wra)
find . -iname '*wbk*' #auto recovery file that is complete
Domain Group Memeber lookup
============================
gpresult /USER KMUTHUVEL /V
net user KMUTHUVEL /DOMAIN
for user in kmuthuvel cog_Mthapa TKhan2 SBasutkar ; do NET USER $user /DOMAIN; done
MOUNT
wmic logicaldisk get caption,description,drivetype,providername,volumename
SHORTCUT FOR INET OPTIONS
C:\Windows\System32\control.exe Inetcpl.cpl,Connections,4
#stored Wifi
for ssid in `netsh wlan show profiles|grep "All User" | awk -F: '{print $2}'` ; do; netsh wlan show profile name=$ssid key=clear |grep -E 'SSID name|Key Content' ; done;
#find for files
DIR /B /S /R /O:N /W *sample*
MarkDown
Name |Sex|City,State
-|
Jorge |M|Corpus, TX
Valerie |M|Corpus, TX
Sabrina |F|Corpus, TX
Excel
To convert the numbers into text?
=================================
1) Use a datevalue(text(XX,”mm/dd/yyyy”) formula
2) Use the text to values function to separate anything so “DATE” and “TIMESTAMP” are in two different columns.
Multi Instance
===============
#ExcelLauncher !!! WARNING !!! Breaks lot of built-in functionality
http://dottech.org/26491/how-to-force-microsoft-excel-to-open-files-in-new-window-how-to-guide/
http://blog.thomascsherman.com/2010/06/opening-excel-files-in-new-processes-excel-launcher-helper-app/
Indian currency format(millions to lakhs)
Update Custom:
[>=10000000]"RS "##\,##\,##\,##0;[>=100000]"RS " ##\,##\,##0;"RS "##,##0
Freezing
=========
Step 1 - Select
First 2 rows: Click on A3 Cell.
First 2 cols: Click on C1 Cell.
First x rows & y cols: Click on (y+1)(x+1) Cell
Step end - View > Window > Freeze Panes > Freeze Panes
Compare
=======
=VLOOKUP(NEEDLE,L$5:L$9,1,FALSE) # String search
=VLOOKUP($NEEDLE&"*",'sheetx'!$A$1:$Z$26,2,FALSE) # Partial string search
=TEXT(J13 -F13, "d"" days ""h"" hrs ""m"" mins """)
Pivot Data Range : Analyze >> Data >> Change Data Source
To seconds
==========
=TEXT(F155-E155,"[s]")
SHAREPOINT/WINWORD CACHE
%userprofile%\Local Settings\Temporary Internet Files\Content.MSO\
ShortCuts
HeidiSQL REDO SHIFT+ALT+BACKSPACE
GNU/Linux
`ldconfig` is a program that is used to maintain the shared library cache. This cache is typically stored in the file /etc/ld.so.cache and is used by the system to map a shared library name to the location of the corresponding shared library file.
Usage : ldconfig -v will make new programs ,ex gpg2 was able to find libksba.so.0
#export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/lib/instantclient_19_6
#validate library file for linked libs using ldd
ldd /usr/lib/instantclient_19_6/libsqora.so.19.1
Performance/Tuning/Cleanup
==========================
. .profile.open # ( https://github.com/kesavanm/handy-tools/blob/master/.profile.open)
cleanit
cleandebs
find . -maxdepth 1 -type d -exec du -hs {} \; #list files usage
find . -size +5M -type f -mtime -3 -exec ls -larht {} \; #greater than 5MB
du -S . | sort -nr | head -25
du -ch -d 1 | sort -hr
du -ch -t 100m # list only files which are bigger than 100 MB r
$du -Pshxc .* 2>/dev/null
716M .
658M ..
1.4G total
$sudo du -h /home/ | grep -P '^[0-9\.]+G'
1.1G /home/kesavan
2.3G /home/
space cleaning tools
-------------------
tdu , gt5 , & ncdu
Better Booting
==============
systemd-analyze plot > Desktop/boot.svg
systemd-analyze blame
systemd-analyze critical-chain
service --status-all
thulasi@thulasi-Inspiron-15-3567(49.204.208.161)|~|2019-01-01 20:36:46
$systemctl disable mysql.service
Synchronizing state of mysql.service with SysV service script with /lib/systemd/systemd-sysv-install.
Executing: /lib/systemd/systemd-sysv-install disable mysql
sudo systemctl disable mysql.service
$history | tail
1007 2019-01-01 20:19:45 systemd-analyze --user blame
1008 2019-01-01 20:20:20 systemd-analyze --system blame
1009 2019-01-01 20:28:21 sudo systemctl disable mysql.service
1010 2019-01-01 20:28:47 sudo systemctl mask mysql.service
1011 2019-01-01 20:30:35 systemctl status mysql.service rvice
1012 2019-01-01 20:31:43 sudo systemctl unmask mysql.service
1013 2019-01-01 20:31:48 systemctl status mysql.service rvice
1014 2019-01-01 20:32:24 systemctl status mysql.service
1015 2019-01-01 20:36:33 systemd-analyze --user critical-chain
1016 2019-01-01 20:36:46 history | tail
0 ✓ success ^_^ ________________________________________________________________________________
thulasi@thulasi-Inspiron-15-3567(49.204.208.161)|~|2019-01-01 20:36:46
Display: - custom resolution
============================
cvt 1920 1080
sudo xrandr --newmode "1920x1080_60.00" 173.00 1920 2048 2248 2576 1080 1083 1088 1120 -hsync +vsync
sudo xrandr --addmode eDP-1 "1920x1080_60.00"
C:\Users\kmuthuvel\AppData\Local\Microsoft\Windows\Temporary Internet Files\Content.Outlook\18C17SJ6
Firefox
general.useragent.locale ta-IN about:config
595c99c907d7bc86620ebe8bc7f23532b8428468 password-1
GNU/Screen:
export SCREENDIR=$HOME/S-$USER
screen -S
Thanks for @theartofweb for their Search Keyword Highlighting
|
Return to Kesavan Muthuvel's home page. Please send comments on these web pages to hi@kesavan.info (or) Feedback here
CopyLeft |
|