mirror of
				https://github.com/onceupon/Bash-Oneliner.git
				synced 2025-11-04 07:01:05 +01:00 
			
		
		
		
	Compare commits
	
		
			5 Commits
		
	
	
		
			212326d7a3
			...
			3199d638ae
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 
						 | 
					3199d638ae | ||
| 
						 | 
					80c5012f38 | ||
| 
						 | 
					6479b26656 | ||
| 
						 | 
					7cfb4e286c | ||
| 
						 | 
					88e095d5fc | 
							
								
								
									
										130
									
								
								README.md
									
									
									
									
									
								
							
							
						
						
									
										130
									
								
								README.md
									
									
									
									
									
								
							@@ -75,15 +75,15 @@ sudo !!
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
##### Run last command and change some parameter using caret substitution (e.g. last command: echo 'aaa' -> rerun as: echo 'bbb')
 | 
					##### Run last command and change some parameter using caret substitution (e.g. last command: echo 'aaa' -> rerun as: echo 'bbb')
 | 
				
			||||||
```bash
 | 
					```bash
 | 
				
			||||||
#last command: echo 'aaa'
 | 
					# last command: echo 'aaa'
 | 
				
			||||||
^aaa^bbb
 | 
					^aaa^bbb
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#echo 'bbb'
 | 
					#echo 'bbb'
 | 
				
			||||||
#bbb
 | 
					#bbb
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#Notice that only the first aaa will be replaced, if you want to replace all 'aaa', use ':&' to repeat it:
 | 
					# Notice that only the first aaa will be replaced, if you want to replace all 'aaa', use ':&' to repeat it:
 | 
				
			||||||
^aaa^bbb^:&
 | 
					^aaa^bbb^:&
 | 
				
			||||||
#or
 | 
					# or
 | 
				
			||||||
!!:gs/aaa/bbb/
 | 
					!!:gs/aaa/bbb/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
```
 | 
					```
 | 
				
			||||||
@@ -218,7 +218,7 @@ echo ${var[@]#0}
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
##### Grep lines with strings from a file (e.g. lines with 'stringA or 'stringB' or 'stringC')
 | 
					##### Grep lines with strings from a file (e.g. lines with 'stringA or 'stringB' or 'stringC')
 | 
				
			||||||
```bash
 | 
					```bash
 | 
				
			||||||
#with grep
 | 
					# with grep
 | 
				
			||||||
test="stringA stringB stringC"
 | 
					test="stringA stringB stringC"
 | 
				
			||||||
grep ${test// /\\\|} file.txt
 | 
					grep ${test// /\\\|} file.txt
 | 
				
			||||||
# turning the space into 'or' (\|) in grep
 | 
					# turning the space into 'or' (\|) in grep
 | 
				
			||||||
@@ -318,7 +318,7 @@ grep -c "^$"
 | 
				
			|||||||
#####  Grep and return only integer
 | 
					#####  Grep and return only integer
 | 
				
			||||||
```bash
 | 
					```bash
 | 
				
			||||||
grep -o '[0-9]*'
 | 
					grep -o '[0-9]*'
 | 
				
			||||||
#or
 | 
					# or
 | 
				
			||||||
grep -oP '\d*'
 | 
					grep -oP '\d*'
 | 
				
			||||||
```
 | 
					```
 | 
				
			||||||
#####  Grep integer with certain number of digits (e.g. 3)
 | 
					#####  Grep integer with certain number of digits (e.g. 3)
 | 
				
			||||||
@@ -341,7 +341,7 @@ grep -Po '\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}'
 | 
				
			|||||||
```bash
 | 
					```bash
 | 
				
			||||||
grep -w 'target'
 | 
					grep -w 'target'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#or using RE
 | 
					# or using RE
 | 
				
			||||||
grep '\btarget\b'
 | 
					grep '\btarget\b'
 | 
				
			||||||
```
 | 
					```
 | 
				
			||||||
#####  Grep returning lines before and after match (e.g. 'bbo')
 | 
					#####  Grep returning lines before and after match (e.g. 'bbo')
 | 
				
			||||||
@@ -379,7 +379,7 @@ grep -v '^#' file.txt
 | 
				
			|||||||
##### Grep variables with space within it (e.g. myvar="some strings")
 | 
					##### Grep variables with space within it (e.g. myvar="some strings")
 | 
				
			||||||
```bash
 | 
					```bash
 | 
				
			||||||
grep "$myvar" filename
 | 
					grep "$myvar" filename
 | 
				
			||||||
#remember to quote the variable!
 | 
					# remember to quote the variable!
 | 
				
			||||||
```
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
##### Grep only one/first match (e.g. 'bbo')
 | 
					##### Grep only one/first match (e.g. 'bbo')
 | 
				
			||||||
@@ -458,8 +458,8 @@ grep $'\t'
 | 
				
			|||||||
```bash
 | 
					```bash
 | 
				
			||||||
$echo "$long_str"|grep -q "$short_str"
 | 
					$echo "$long_str"|grep -q "$short_str"
 | 
				
			||||||
if [ $? -eq 0 ]; then echo 'found'; fi
 | 
					if [ $? -eq 0 ]; then echo 'found'; fi
 | 
				
			||||||
#grep -q will output 0 if match found
 | 
					# grep -q will output 0 if match found
 | 
				
			||||||
#remember to add space between []!
 | 
					# remember to add space between []!
 | 
				
			||||||
```
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
##### Grep strings between a bracket()
 | 
					##### Grep strings between a bracket()
 | 
				
			||||||
@@ -545,7 +545,7 @@ sed -i '$ s/.$//' filename
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
##### Add string to beginning of file (e.g. "\[")
 | 
					##### Add string to beginning of file (e.g. "\[")
 | 
				
			||||||
```bash
 | 
					```bash
 | 
				
			||||||
sed -i '1s/^/[/' file
 | 
					sed -i '1s/^/[/' filename
 | 
				
			||||||
```
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
##### Add string at certain line number (e.g. add 'something' to line 1 and line 3)
 | 
					##### Add string at certain line number (e.g. add 'something' to line 1 and line 3)
 | 
				
			||||||
@@ -692,7 +692,7 @@ sed '$ s/.$//'
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
##### Insert character at specified position of file (e.g. AAAAAA --> AAA#AAA)
 | 
					##### Insert character at specified position of file (e.g. AAAAAA --> AAA#AAA)
 | 
				
			||||||
```bash
 | 
					```bash
 | 
				
			||||||
sed -r -e 's/^.{3}/&#/' file
 | 
					sed -r -e 's/^.{3}/&#/' filename
 | 
				
			||||||
```
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -747,7 +747,7 @@ awk -v N=7 '{print}/bbo/&& --N<=0 {exit}'
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
##### Print filename and last line of all files in directory
 | 
					##### Print filename and last line of all files in directory
 | 
				
			||||||
```bash
 | 
					```bash
 | 
				
			||||||
ls|xargs -n1 -I file awk '{s=$0};END{print FILENAME,s}' file
 | 
					ls|xargs -n1 -I file awk '{s=$0};END{print FILENAME,s}' filename
 | 
				
			||||||
```
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
##### Add string to the beginning of a column (e.g add "chr" to column $3)
 | 
					##### Add string to the beginning of a column (e.g add "chr" to column $3)
 | 
				
			||||||
@@ -757,12 +757,12 @@ awk 'BEGIN{OFS="\t"}$3="chr"$3'
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
##### Remove lines with string (e.g. 'bbo')
 | 
					##### Remove lines with string (e.g. 'bbo')
 | 
				
			||||||
```bash
 | 
					```bash
 | 
				
			||||||
awk '!/bbo/' file
 | 
					awk '!/bbo/' filename
 | 
				
			||||||
```
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
##### Remove last column
 | 
					##### Remove last column
 | 
				
			||||||
```bash
 | 
					```bash
 | 
				
			||||||
awk 'NF{NF-=1};1' file
 | 
					awk 'NF{NF-=1};1' filename
 | 
				
			||||||
```
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
##### Usage and meaning of NR and FNR
 | 
					##### Usage and meaning of NR and FNR
 | 
				
			||||||
@@ -827,7 +827,7 @@ awk '{printf("%s\t%s\n",NR,$0)}'
 | 
				
			|||||||
# David    cat
 | 
					# David    cat
 | 
				
			||||||
# David    dog
 | 
					# David    dog
 | 
				
			||||||
 | 
					
 | 
				
			||||||
awk '{split($2,a,",");for(i in a)print $1"\t"a[i]}' file
 | 
					awk '{split($2,a,",");for(i in a)print $1"\t"a[i]}' filename
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# Detail here: http://stackoverflow.com/questions/33408762/bash-turning-single-comma-separated-column-into-multi-line-string
 | 
					# Detail here: http://stackoverflow.com/questions/33408762/bash-turning-single-comma-separated-column-into-multi-line-string
 | 
				
			||||||
```
 | 
					```
 | 
				
			||||||
@@ -941,7 +941,7 @@ find /dir/to/A -type f -name "*.py" -print 0| xargs -0 -r -I file cp -v -p file
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
##### With sed
 | 
					##### With sed
 | 
				
			||||||
```bash
 | 
					```bash
 | 
				
			||||||
ls |xargs -n1 -I file sed -i '/^Pos/d' file
 | 
					ls |xargs -n1 -I file sed -i '/^Pos/d' filename
 | 
				
			||||||
```
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
##### Add the file name to the first line of file
 | 
					##### Add the file name to the first line of file
 | 
				
			||||||
@@ -1052,9 +1052,10 @@ else
 | 
				
			|||||||
  echo >&2 "Fatal error. This script requires mydir."
 | 
					  echo >&2 "Fatal error. This script requires mydir."
 | 
				
			||||||
fi
 | 
					fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# if variable is null
 | 
					# Check if a variable is null
 | 
				
			||||||
if [ ! -s "myvariable" ]; then echo -e "variable is null!" ; fi
 | 
					if [ -z "$var" ]; then echo "NULL"; else echo "Not NULL"; fi
 | 
				
			||||||
#True of the length if "STRING" is zero.
 | 
					# or 
 | 
				
			||||||
 | 
					[ -z "$var" ] && echo "NULL"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# Using test command (same as []), to test if the length of variable is nonzero
 | 
					# Using test command (same as []), to test if the length of variable is nonzero
 | 
				
			||||||
test -n "$myvariable" && echo myvariable is "$myvariable" || echo myvariable is not set
 | 
					test -n "$myvariable" && echo myvariable is "$myvariable" || echo myvariable is not set
 | 
				
			||||||
@@ -1091,7 +1092,7 @@ if [[ $age -gt 21 ]]; then echo -e "forever 21!!" ; fi
 | 
				
			|||||||
```bash
 | 
					```bash
 | 
				
			||||||
# Echo the file name under the current directory
 | 
					# Echo the file name under the current directory
 | 
				
			||||||
for i in $(ls); do echo file $i; done
 | 
					for i in $(ls); do echo file $i; done
 | 
				
			||||||
#or
 | 
					# or
 | 
				
			||||||
for i in *; do echo file $i; done
 | 
					for i in *; do echo file $i; done
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# Make directories listed in a file (e.g. myfile)
 | 
					# Make directories listed in a file (e.g. myfile)
 | 
				
			||||||
@@ -1104,10 +1105,10 @@ for i in $(cat tpc_stats_0925.log |grep failed|grep -o '\query\w\{1,2\}'); do ca
 | 
				
			|||||||
oifs="$IFS"; IFS=$'\n'; for line in $(cat myfile); do ...; done
 | 
					oifs="$IFS"; IFS=$'\n'; for line in $(cat myfile); do ...; done
 | 
				
			||||||
while read -r line; do ...; done <myfile
 | 
					while read -r line; do ...; done <myfile
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#If only one word a line, simply
 | 
					# If only one word a line, simply
 | 
				
			||||||
for line in $(cat myfile); do echo $line; read -n1; done
 | 
					for line in $(cat myfile); do echo $line; read -n1; done
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#Loop through an array
 | 
					# Loop through an array
 | 
				
			||||||
for i in "${arrayName[@]}"; do echo $i; done
 | 
					for i in "${arrayName[@]}"; do echo $i; done
 | 
				
			||||||
 | 
					
 | 
				
			||||||
```
 | 
					```
 | 
				
			||||||
@@ -1216,7 +1217,7 @@ TMOUT=10
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
##### Set how long you want to run a command
 | 
					##### Set how long you want to run a command
 | 
				
			||||||
```bash
 | 
					```bash
 | 
				
			||||||
#This will run the command 'sleep 10' for only 1 second.
 | 
					# This will run the command 'sleep 10' for only 1 second.
 | 
				
			||||||
timeout 1 sleep 10
 | 
					timeout 1 sleep 10
 | 
				
			||||||
```
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -1551,9 +1552,17 @@ stat filename.txt
 | 
				
			|||||||
ps aux
 | 
					ps aux
 | 
				
			||||||
```
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					##### List processes by top memory usage
 | 
				
			||||||
 | 
					```bash
 | 
				
			||||||
 | 
					ps -eo pid,ppid,cmd,%mem,%cpu --sort=-%mem | head
 | 
				
			||||||
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
##### Display a tree of processes
 | 
					##### Display a tree of processes
 | 
				
			||||||
```bash
 | 
					```bash
 | 
				
			||||||
pstree
 | 
					pstree
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# or
 | 
				
			||||||
 | 
					ps aux --forest
 | 
				
			||||||
```
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
##### Find maximum number of processes
 | 
					##### Find maximum number of processes
 | 
				
			||||||
@@ -1585,7 +1594,7 @@ who -r
 | 
				
			|||||||
##### Change SysV runlevel (e.g. 5)
 | 
					##### Change SysV runlevel (e.g. 5)
 | 
				
			||||||
```bash
 | 
					```bash
 | 
				
			||||||
init 5
 | 
					init 5
 | 
				
			||||||
#or
 | 
					# or
 | 
				
			||||||
telinit 5
 | 
					telinit 5
 | 
				
			||||||
```
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -1787,7 +1796,7 @@ pushd .
 | 
				
			|||||||
# then pop
 | 
					# then pop
 | 
				
			||||||
popd
 | 
					popd
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#or use dirs to display the list of currently remembered directories.
 | 
					# or use dirs to display the list of currently remembered directories.
 | 
				
			||||||
dirs -l
 | 
					dirs -l
 | 
				
			||||||
```
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -1798,7 +1807,7 @@ df -h
 | 
				
			|||||||
# or
 | 
					# or
 | 
				
			||||||
du -h
 | 
					du -h
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#or
 | 
					# or
 | 
				
			||||||
du -sk /var/log/* |sort -rn |head -10
 | 
					du -sk /var/log/* |sort -rn |head -10
 | 
				
			||||||
```
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -1828,7 +1837,7 @@ runlevel
 | 
				
			|||||||
```bash
 | 
					```bash
 | 
				
			||||||
init 3
 | 
					init 3
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#or
 | 
					# or
 | 
				
			||||||
telinit 3
 | 
					telinit 3
 | 
				
			||||||
```
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -1959,7 +1968,7 @@ ldconfig -p
 | 
				
			|||||||
ldd /bin/ls
 | 
					ldd /bin/ls
 | 
				
			||||||
```
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
##### Check user login
 | 
					##### Check the most recent login of all users
 | 
				
			||||||
```bash
 | 
					```bash
 | 
				
			||||||
lastlog
 | 
					lastlog
 | 
				
			||||||
```
 | 
					```
 | 
				
			||||||
@@ -2145,7 +2154,7 @@ ps aux|grep python
 | 
				
			|||||||
```bash
 | 
					```bash
 | 
				
			||||||
ps -p <PID>
 | 
					ps -p <PID>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#or
 | 
					# or
 | 
				
			||||||
cat /proc/<PID>/status
 | 
					cat /proc/<PID>/status
 | 
				
			||||||
cat /proc/<PID>/stack
 | 
					cat /proc/<PID>/stack
 | 
				
			||||||
cat /proc/<PID>/stat
 | 
					cat /proc/<PID>/stat
 | 
				
			||||||
@@ -2193,21 +2202,21 @@ sudo dpkg --purge <package_name>
 | 
				
			|||||||
```bash
 | 
					```bash
 | 
				
			||||||
ssh -f -L 9000:targetservername:8088 root@192.168.14.72 -N
 | 
					ssh -f -L 9000:targetservername:8088 root@192.168.14.72 -N
 | 
				
			||||||
#-f: run in background; -L: Listen; -N: do nothing
 | 
					#-f: run in background; -L: Listen; -N: do nothing
 | 
				
			||||||
#the 9000 of your computer is now connected to the 8088 port of the targetservername through 192.168.14.72
 | 
					# the 9000 of your computer is now connected to the 8088 port of the targetservername through 192.168.14.72
 | 
				
			||||||
#so that you can see the content of targetservername:8088 by entering localhost:9000 from your browser.
 | 
					# so that you can see the content of targetservername:8088 by entering localhost:9000 from your browser.
 | 
				
			||||||
```
 | 
					```
 | 
				
			||||||
##### Get process ID of a process (e.g. sublime_text)
 | 
					##### Get process ID of a process (e.g. sublime_text)
 | 
				
			||||||
```bash
 | 
					```bash
 | 
				
			||||||
#pidof
 | 
					# pidof
 | 
				
			||||||
pidof sublime_text
 | 
					pidof sublime_text
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#pgrep, you don't have to type the whole program name
 | 
					# pgrep, you don't have to type the whole program name
 | 
				
			||||||
pgrep sublim
 | 
					pgrep sublim
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#pgrep, echo 1 if process found, echo 0 if no such process
 | 
					# pgrep, echo 1 if process found, echo 0 if no such process
 | 
				
			||||||
pgrep -q sublime_text && echo 1 || echo 0
 | 
					pgrep -q sublime_text && echo 1 || echo 0
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#top, takes longer time
 | 
					# top, takes longer time
 | 
				
			||||||
top|grep sublime_text
 | 
					top|grep sublime_text
 | 
				
			||||||
```
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -2272,7 +2281,12 @@ sar -f /var/log/sa/sa31|tail
 | 
				
			|||||||
journalctl --file ./log/journal/a90c18f62af546ccba02fa3734f00a04/system.journal  --since "2020-02-11 00:00:00"
 | 
					journalctl --file ./log/journal/a90c18f62af546ccba02fa3734f00a04/system.journal  --since "2020-02-11 00:00:00"
 | 
				
			||||||
```
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
##### Show a listing of last logged in users.
 | 
					##### Show a listing of last logged in users
 | 
				
			||||||
 | 
					```bash
 | 
				
			||||||
 | 
					last
 | 
				
			||||||
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					##### Show a listing of unsuccessful (bad) login attempts 
 | 
				
			||||||
```bash
 | 
					```bash
 | 
				
			||||||
lastb
 | 
					lastb
 | 
				
			||||||
```
 | 
					```
 | 
				
			||||||
@@ -2450,6 +2464,11 @@ dig +short www.example.com
 | 
				
			|||||||
host www.example.com
 | 
					host www.example.com
 | 
				
			||||||
```
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					##### Check public IP address
 | 
				
			||||||
 | 
					```bash
 | 
				
			||||||
 | 
					curl http://checkip.amazonaws.com
 | 
				
			||||||
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
##### Get DNS TXT record a of domain
 | 
					##### Get DNS TXT record a of domain
 | 
				
			||||||
```bash
 | 
					```bash
 | 
				
			||||||
dig -t txt www.example.com
 | 
					dig -t txt www.example.com
 | 
				
			||||||
@@ -2490,7 +2509,7 @@ $ sudo nc -l 80
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
##### Check which ports are listening for TCP connections from the network
 | 
					##### Check which ports are listening for TCP connections from the network
 | 
				
			||||||
```bash
 | 
					```bash
 | 
				
			||||||
#notice that some companies might not like you using nmap
 | 
					# note that some companies might not like you using nmap
 | 
				
			||||||
nmap -sT -O localhost
 | 
					nmap -sT -O localhost
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# check port 0-65535
 | 
					# check port 0-65535
 | 
				
			||||||
@@ -2498,7 +2517,7 @@ nmap  -p0-65535 localhost
 | 
				
			|||||||
```
 | 
					```
 | 
				
			||||||
##### Check if a host is up and scan for open ports, also skip host discovery.
 | 
					##### Check if a host is up and scan for open ports, also skip host discovery.
 | 
				
			||||||
```bash
 | 
					```bash
 | 
				
			||||||
#skips checking if the host is alive which may sometimes cause a false positive and stop the scan.
 | 
					# skips checking if the host is alive. this may sometimes cause a false positive, stopping the scan.
 | 
				
			||||||
$ nmap google.com -Pn
 | 
					$ nmap google.com -Pn
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# Example output:
 | 
					# Example output:
 | 
				
			||||||
@@ -2520,7 +2539,7 @@ $ nmap -A -T4 scanme.nmap.org
 | 
				
			|||||||
# -A to enable OS and version detection, script scanning, and traceroute; -T4 for faster execution
 | 
					# -A to enable OS and version detection, script scanning, and traceroute; -T4 for faster execution
 | 
				
			||||||
```
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
##### Look up website information (e.g. name server), searches for an object in a RFC 3912 database.
 | 
					##### Look up website information (e.g. name server), searches for an object in a RFC 3912 database
 | 
				
			||||||
```bash
 | 
					```bash
 | 
				
			||||||
whois google.com
 | 
					whois google.com
 | 
				
			||||||
```
 | 
					```
 | 
				
			||||||
@@ -2530,7 +2549,7 @@ whois google.com
 | 
				
			|||||||
openssl s_client -showcerts -connect www.example.com:443
 | 
					openssl s_client -showcerts -connect www.example.com:443
 | 
				
			||||||
```
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
##### Display IP address
 | 
					##### Display network interfaces and their associated IP addresses
 | 
				
			||||||
```bash
 | 
					```bash
 | 
				
			||||||
ip a
 | 
					ip a
 | 
				
			||||||
```
 | 
					```
 | 
				
			||||||
@@ -2590,6 +2609,10 @@ curl -I http://example.com/
 | 
				
			|||||||
# Accept-Ranges: bytes
 | 
					# Accept-Ranges: bytes
 | 
				
			||||||
# Vary: Accept-Encoding
 | 
					# Vary: Accept-Encoding
 | 
				
			||||||
```
 | 
					```
 | 
				
			||||||
 | 
					##### Find out the time spent between request and response
 | 
				
			||||||
 | 
					```
 | 
				
			||||||
 | 
					curl -v -o /dev/null -s -w 'Total: %{time_total}s\n' google.com
 | 
				
			||||||
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
##### Find out the http status code of a URL
 | 
					##### Find out the http status code of a URL
 | 
				
			||||||
```bash
 | 
					```bash
 | 
				
			||||||
@@ -2731,11 +2754,11 @@ comm -23 fileA fileB
 | 
				
			|||||||
```bash
 | 
					```bash
 | 
				
			||||||
nl fileA
 | 
					nl fileA
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#or
 | 
					# or
 | 
				
			||||||
nl -nrz fileA
 | 
					nl -nrz fileA
 | 
				
			||||||
# add leading zeros
 | 
					# add leading zeros
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#or
 | 
					# or
 | 
				
			||||||
nl -w1 -s ' '
 | 
					nl -w1 -s ' '
 | 
				
			||||||
# making it simple, blank separate
 | 
					# making it simple, blank separate
 | 
				
			||||||
```
 | 
					```
 | 
				
			||||||
@@ -2870,7 +2893,7 @@ echo -e 'text here \c'
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
##### View first 50 characters of file
 | 
					##### View first 50 characters of file
 | 
				
			||||||
```bash
 | 
					```bash
 | 
				
			||||||
head -c 50 file
 | 
					head -c 50 filename
 | 
				
			||||||
```
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
##### Cut and get last column of a file
 | 
					##### Cut and get last column of a file
 | 
				
			||||||
@@ -2908,6 +2931,11 @@ cat >>myfile
 | 
				
			|||||||
let me add sth here
 | 
					let me add sth here
 | 
				
			||||||
# exit with ctrl+d
 | 
					# exit with ctrl+d
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# or
 | 
				
			||||||
 | 
					cat << EoF >> filename
 | 
				
			||||||
 | 
					> add something here
 | 
				
			||||||
 | 
					> EoF 
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# or using tee
 | 
					# or using tee
 | 
				
			||||||
tee -a myfile
 | 
					tee -a myfile
 | 
				
			||||||
let me add sth else here
 | 
					let me add sth else here
 | 
				
			||||||
@@ -2926,9 +2954,9 @@ echo 'hihi' >>filename
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
##### Working with json data
 | 
					##### Working with json data
 | 
				
			||||||
```bash
 | 
					```bash
 | 
				
			||||||
#install the useful jq package
 | 
					# Install the useful jq package
 | 
				
			||||||
#sudo apt-get install jq
 | 
					# sudo apt-get install jq
 | 
				
			||||||
#e.g. to get all the values of the 'url' key, simply pipe the json to the following jq command(you can use .[]. to select inner json, i.e jq '.[].url')
 | 
					# e.g. to get all the values of the 'url' key, simply pipe the json to the following jq command(you can use .[]. to select inner json, i.e jq '.[].url')
 | 
				
			||||||
cat file.json | jq '.url'
 | 
					cat file.json | jq '.url'
 | 
				
			||||||
```
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -3001,7 +3029,7 @@ while read a b; do yes $b |head -n $a ; done <test.txt
 | 
				
			|||||||
## Others
 | 
					## Others
 | 
				
			||||||
[[back to top](#handy-bash-one-liners)]
 | 
					[[back to top](#handy-bash-one-liners)]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
##### Describe the format and characteristics of image files.
 | 
					##### Describe the format and characteristics of image files
 | 
				
			||||||
```bash
 | 
					```bash
 | 
				
			||||||
identify myimage.png
 | 
					identify myimage.png
 | 
				
			||||||
#myimage.png PNG 1049x747 1049x747+0+0 8-bit sRGB 1.006MB 0.000u 0:00.000
 | 
					#myimage.png PNG 1049x747 1049x747+0+0 8-bit sRGB 1.006MB 0.000u 0:00.000
 | 
				
			||||||
@@ -3124,7 +3152,7 @@ history -w
 | 
				
			|||||||
vi ~/.bash_history
 | 
					vi ~/.bash_history
 | 
				
			||||||
history -r
 | 
					history -r
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#or
 | 
					# or
 | 
				
			||||||
history -d [line_number]
 | 
					history -d [line_number]
 | 
				
			||||||
```
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -3277,6 +3305,12 @@ scp -r directoryname user@ip:/path/to/send
 | 
				
			|||||||
# :(){:|:&};:
 | 
					# :(){:|:&};:
 | 
				
			||||||
```
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					##### Trigger kernel crash
 | 
				
			||||||
 | 
					```bash
 | 
				
			||||||
 | 
					# Don't try this at home! 
 | 
				
			||||||
 | 
					echo c > /proc/sysrq-trigger
 | 
				
			||||||
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
##### Use the last argument
 | 
					##### Use the last argument
 | 
				
			||||||
```bash
 | 
					```bash
 | 
				
			||||||
!$
 | 
					!$
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user