This is an old revision of the document!
Three lines tip
Do you have a tip/hack that's max. three lines long??
How do I capture the output of “top” to a file?
The command top is a very useful tool to capture information about process running on Linux. Many times this information may need to be captured to a file. This can be done with the following command:
top -b -n1 > /tmp/top.txt
This will run top once write the output to a file and exit.
The command top can also be run so that it will give multiple reports. To run top 5 times and wait 5 seconds between each output the command would be:
top -b -n5 -d5 > /tmp/top.txt
Removing whitespaces from filename
# i in *.[jJ][pP][gG]; do mv "$i" $(echo "$i" | sed "s/ /_/g"); done
ali
# rename 's/ /_/' *.[jJ][pP][gG]
:)
How to get Webserver Version
# printf "HEAD / HTTP/1.0nn" | nc $server 80 | grep Server
Spliting .tgz file on the fly
tar -czf /dev/stdout $(DIRECTORY_OR_FILE_TO_COMPRESS) | split -d -b $(CHUNK_SIZE_IN_BYTES) - $(FILE_NAME_PREFIX)
putting them together agian
cat $(FILE_NAME_PREFIX)* >> /dev/stdout | tar -xzf /dev/stdin
Compile on SMP machines
export MAKEFLAGS=“-j3”
Patch & Diff
$ diff -c prog.c.old prog.c > prog.patch $ patch < prog.patch
Printing network traffic
% sudo tcpdump -Atq -s 0 -i en1
-i en1 will display traffic on your airport card. Use en0 (or nothing, for most systems) for built-in ethernettage. You can add a host line to limit output to a particular host
% sudo tcpdump -Atq -s 0 -i en1 host foobar.com
Couting openfiles per user
# lsof | grep ' root ' | awk '{print $NF}' | sort | wc -l
Of course, if you want to drop the count and show the actual processes, you can run:
# lsof | grep ' root '
How to check is service is tcpwrapper enable
# ldd `which sshd` | grep -i libwrap
or
# strings `which sshd` | grep -i libwrap
Comparing files & taking some action based on outcome
Method 1
cmp -s file1 file2 || { # do something }
Method 2
cmp -s file1 file2 if [ $? = 1 ] then # do something fi
IPv4 parsing / sorting
egrep '([[:digit:]]{1,3}\.){3}[[:digit:]]{1,3}'
and
sort -n -t . -k 1,1 -k 2,2 -k 3,3 -k 4,4
finding a string in a "live" stream
tail -f filename |grep –line-buffered STRING
Local/remote webserver
Serve files on port 8080 for anybody from the directory from where you start this command:
:;while [ $? -eq 0 ];do nc -vlp 8080 -c'(r=read;e=echo;$r a b c;z=$r;while [ ${#z} -gt 2 ];do $r z;done;f=`$e $b|sed 's/[^a-z0-9_.-]//gi'`;h="HTTP/1.0";o="$h 200 OK\r\n";c="Content";if [ -z $f ];then($e $o;ls|(while $r n;do if [ -f "$n" ]; then $e "<a href=\"/$n\">`ls -gh $n` ";fi;done););elif [ -f $f ];then $e "$o$c-Type: `file -ib $f`\n$c-Length: `stat -c%s $f`";$e;cat $f;else $e -e "$h 404 Not Found\n\n404\n";fi)';done