diff --git a/README.md b/README.md index 9c9c37e..7d35958 100644 --- a/README.md +++ b/README.md @@ -253,6 +253,9 @@ performance of any of your sites from across the globe.
* [ps](#tool-ps) * [find](#tool-find) * [diff](#tool-diff) + * [tail](#tool-tail) + * [cpulimit](#tool-cpulimit) + * [pwdx](#tool-pwdx) - **[HTTP/HTTPS](#http-https)** * [curl](#tool-curl) * [httpie](#tool-httpie) @@ -287,6 +290,12 @@ disown -a && exit kill -9 $$ ``` +###### Perform a branching conditional + +```bash +true && { echo success;} || { echo failed; } +``` + ###### Pipe stdout and stderr to separate commands ```bash @@ -316,7 +325,6 @@ rm !(*.foo|*.bar|*.baz) ```bash vim scp://user@host//etc/fstab ``` -___ ###### Create a directory and change into it at the same time @@ -324,6 +332,14 @@ ___ mkd () { mkdir -p "$@" && cd "$@"; } ``` +###### Convert uppercase files to lowercase files + +```bash +rename 'y/A-Z/a-z/' * +``` + +___ + ##### Tool: [mount](https://curl.haxx.se) ###### Mount a temporary ram partition @@ -355,6 +371,12 @@ ___ ps awwfux | less -S ``` +###### Processes per user counter + +```bash +ps hax -o user | sort | uniq -c | sort -r +``` + ___ ##### Tool: [find](https://curl.haxx.se) @@ -381,6 +403,46 @@ ___ diff <(cd directory1 && find | sort) <(cd directory2 && find | sort) ``` +___ + +##### Tool: [tail](https://curl.haxx.se) + +###### Annotate tail -f with timestamps + +```bash +tail -f file | while read; do echo "$(date +%T.%N) $REPLY"; done +``` + +###### Analyse an Apache access log for the most common IP addresses + +```bash +tail -10000 access_log | awk '{print $1}' | sort | uniq -c | sort -n | tail +``` + +##### Tool: [cpulimit](https://curl.haxx.se) + +###### Limit the cpu usage of a process + +```bash +cpulimit -p pid -l 50 +``` + +##### Tool: [pwdx](https://curl.haxx.se) + +###### Show current working directory of a process + +```bash +pwdx +``` + +##### Tool: [taskset](https://curl.haxx.se) + +###### Start a command on only one CPU core + +```bash +taskset -c 0 +``` + HTTP/HTTPS ##### Tool: [curl](https://curl.haxx.se) @@ -614,6 +676,12 @@ server> nc -l 5000 -e /bin/bash client> nc 10.240.30.3 5000 ``` +###### Simple file server + +```bash +while true ; do nc -l 5000 | tar -xvf - ; done +``` + ###### Simple HTTP Server > Restarts web server after each request - remove `while` condition for only single connection. @@ -700,6 +768,22 @@ Date: Sun, 01 Jul 2018 20:12:08 GMT Last-Modified: Sun, 01 Apr 2018 21:53:37 GMT ``` +###### Create a single-use TCP or UDP proxy + +```bash +### TCP -> TCP +nc -l -p 2000 -c "nc [ip|hostname] 3000" + +### TCP -> UDP +nc -l -p 2000 -c "nc -u [ip|hostname] 3000" + +### UDP -> UDP +nc -l -u -p 2000 -c "nc -u [ip|hostname] 3000" + +### UDP -> TCP +nc -l -u -p 2000 -c "nc [ip|hostname] 3000" +``` + ___ ##### Tool: [socat](http://www.dest-unreach.org/socat/doc/socat.html/) @@ -753,6 +837,12 @@ lsof -i tcp:443 lsof -Pan -i tcp -i udp ``` +###### List all files opened by a particular command + +```bash +lsof -c "process" +``` + **Tool: [netstat](http://www.dest-unreach.org/socat/doc/socat.html/)** ###### Graph # of connections for each hosts