Here’s a list of useful piped commands or just commands for which I need a refresher on which arguments to use. For example, using Awk to print between two known lines, or seleting a line in sed are good examples of infrequently used commands which are really useful.
escape broken ssh session
Type this into a hanging/broken SSH session that won’t terminate, this uncleanly terminates the session on the client-side.
<Enter>~.
generate 8 character alphanumeric string
< /dev/urandom tr -dc A-Za-z0-9 | head -c8; echo
print between A and B in filename with the filename as prefix to each line
awk '/A/,/B/ { print FILENAME, $1 }' FILES
find new files
find . -printf "%T+\t%p\n" | sort
delete lines until string
sed -i '0,/^STRING$/d' FILE
delete lines X through Y
sed -i 'X,Yd' FILE
read a process’ stdout
strace -p17025 -s999 -e read 2>&1
listening ports and their process
netstat -tulpn
# -t(tcp) -u(udp) -l(listening only) -p(pid) -n(no port names)
tcpdump http(80)
tcpdump -i eth0 -n 'port 80'
watch, highlight changes permanently
watch -d=cumulative -n1 date
print colmns 2 through 5 with awk
awk '{ print substr($0, index($2,$5)) }'
print columns 2 through 5 with cut using comma deliminator
cut -d, -f2-5
print average of column with awk
awk '{l++}{s+=$1}END{print s/l}'
find value in column
awk '$3 == "text" {print}'
awk '$3 ~ /regex/ {print}'
pass an arg to 8 processes until arguments exhausted
find . | xargs -P8 -n1 -I{} cp -v {} {}.backup