PDF Print E-mail

 

This is a linux command line reference for common operations.
All these commands have been tested both on Fedora and Ubuntu.

 Commands
 Description
 1apropos whatis
Show commands pertinent to string. See also threadsafe
 2 man -t man | ps2pdf - > man.pdf make a pdf of a manual page
 3 which command Show full path name of command
 4 time command See how long a command takes
 5 time cat Start stopwatch. Ctrl-d to stop.
 6 nice info Run a low priority command (The "info" reader in this case)
 7 renice 19 -p $$ Make shell (script) low priority. Use for non interactive tasks
  Dir Navigation
 
 1 cd -
 Go to previous directory
 2 cd Go to $HOME directory
 3 (cd dir && command) Go to dir, execute command and return to current dir
 4 pushd . Put current dir on stack so you can popd back to i
  File search
 
 1 alias l='ls -l --color=auto' quick dir listing
 2 ls -lrt List files by date.
 3 ls /usr/bin | pr -T9 -W$COLUMNS Print in 9 columns to width of terminal
 4 find -name '*.[ch]' | xargs grep -E 'expr' Search 'expr' in this dir and below.
5
 find -type f -print0 | xargs -r0 grep -F 'example' Search all regular files for 'example' in this dir and below
6
 find -maxdepth 1 -type f | xargs grep -F 'example' Search all regular files for 'example' in this dir
 7 find -maxdepth 1 -type d | while read dir; do echo $dir; echo cmd2; done Process each item with multiple commands (in while loop)
 8 find -type f ! -perm -444 Find files not readable by all (useful for web site)
 8 find -type d ! -perm -111 Find dirs not accessible by all (useful for web site)
 9 locate -r 'file[^/]*\.txt' Search cached index for names. This re is like glob *file*.txt
 10 look reference Quickly search (sorted) dictionary for prefix
 11 grep --color reference /usr/share/dict/words Highlight occurances of regular expression in dictionary
  archives and compression 
 1 gpg -c file Encrypt file
 2 gpg file.gpg Decrypt file
 3 tar -c dir/ | bzip2 > dir.tar.bz2 Make compressed archive of dir/
 4 bzip2 -dc dir.tar.bz2 | tar -x Extract archive (use gzip instead of bzip2 for tar.gz files)
 5 tar -c dir/ | gzip | gpg -c | ssh user@remote 'dd of=dir.tar.gz.gpg' Make encrypted archive of dir/ on remote machine
 6 find dir/ -name '*.txt' | tar -c --files-from=- | bzip2 > dir_txt.tar.bz2 Make archive of subset of dir/ and below
 7 find dir/ -name '*.txt' | xargs cp -a --target-directory=dir_txt/ --parents Make copy of subset of dir/ and below
 8 (tar -c /dir/to/copy ) | ( cd /where/to/ && tar -x -p ) Copy (with permissions) copy/ dir to /where/to/ dir
 9 (cd /dir/to/copy && tar -c . ) | ( cd /where/to/ && tar -x -p ) Copy (with permissions) contents of copy/ dir to /where/to/
 10( tar -c /dir/to/copy ) | ssh -C user@remote 'cd /where/to/ && tar -x -p'  Copy (with permissions) copy/ dir to remote:/where/to/ dir
 11 dd bs=1M if=/dev/sda | gzip | ssh user@remote 'dd of=sda.gz' Backup harddisk to remote machine
  rsync (Network efficient file copier: Use the --dry-run option for testing) 
 1 rsync -P rsync://rsync.server.com/path/to/file file Only get diffs. Do multiple times for troublesome downloads
 2 rsync --bwlimit=1000 fromfile tofile Locally copy with rate limit. It's like nice for I/O
 3 rsync -az -e ssh --delete ~/public_html/ remote.com:'~/public_html' Mirror web site (using compression and encryption)
 4 rsync -auz -e ssh remote:/dir/ . && rsync -auz -e ssh . remote:/dir/ Synchronize current directory with remote one
  ssh (Secure SHell) 
 1 ssh $USER@$HOST command Run command on $HOST as $USER (default command=shell)
 2 ssh -f -Y $USER@$HOSTNAME xeyes Run GUI command on $HOSTNAME as $USER
 3 scp -p -r $USER@$HOST: file dir/ Copy with permissions to $USER's home directory on $HOST
 4 ssh -g -L 8080:localhost:80 root@$HOST Forward connections to $HOSTNAME:8080 out to $HOST:80
 5 ssh -R 1434:imap:143 root@$HOST Forward connections from $HOST:1434 in to imap:143
  wget (multi purpose download tool) 
 1 (cd dir/ && wget -nd -pHEKk http://www.pixelbeat.org/cmdline.html) Store local browsable version of a page to the current dir
 2 wget -c http://www.example.com/large.file Continue downloading a partially downloaded file
 3 wget -r -nd -np -l1 -A '*.jpg' http://www.example.com/dir/ Download a set of files to the current directory
 4 wget ftp://remote/file[1-9].iso/ FTP supports globbing directly
 5 wget -q -O- http://www.pixelbeat.org/timeline.html | grep 'a href' | head Process output directly
 6 echo 'wget url' | at 01:00 Download url at 1AM to current dir
 7 wget --limit-rate=20k url Do a low priority download (limit to 20KB/s in this case)
 8 wget -nv --spider --force-html -i bookmarks.html Check links in a file
 9 wget --mirror http://www.example.com/ Efficiently update a local copy of a site (handy from cron)
  Networking (Note ifconfig, route, mii-tool, nslookup commands are obsolete) 
 1 ethtool eth0 Show status of ethernet interface eth0
 2ethtool --change eth0 autoneg off speed 100 duplex full Manually set ethernet interface speed
 3 iwconfig eth1 Show status of wireless interface eth1
 4 iwconfig eth1 rate 1Mb/s fixed Manually set wireless interface speed
 5 iwlist scan List wireless networks in range
 6 ip link show List network interfaces
 7 ip link set dev eth0 name wan Rename interface eth0 to wan
 8 ip link set dev eth0 up Bring interface eth0 up (or down)
 9 ip addr showList addresses for interfaces
 10 ip addr add 1.2.3.4/24 brd + dev eth0Add (or del) ip and mask (255.255.255.0)
 11 ip route show List routing table
 12 ip route add default via 1.2.3.254 Set default gateway to 1.2.3.254
 13 tc qdisc add dev lo root handle 1:0 netem delay 20msec Add 20ms latency to loopback device (for testing)
 14 tc qdisc del dev lo root Remove latency added above
 15 host gnugroup.org
 Lookup DNS ip address for name or vice versa
 16 hostname -iLookup local ip address (equivalent to host `hostname`)
 17 whois gnugroup.org Lookup whois info for hostname or ip address
 18 netstat -tupl List internet services on a system
 19 netstat -tup List active connections to/from system
  windows networking (Note samba is the package that provides all this windows specific networking support) 
  1 smbtree Find windows machines.
 2
 nmblookup -A 1.2.3.4 Find the windows (netbios) name associated with ip address
 3 smbclient -L windows_box List shares on windows machine or samba server
 4mount -t smbfs -o fmask=666,guest //windows_box/share /mnt/share
 Mount a windows share
 5
 echo 'message' | smbclient -M windows_box Send popup to windows machine (off by default in XP sp2)
 Text manipulation (Note sed uses stdin and stdout. Newer versions support inplace editing with the -i option) 
 1
 sed 's/string1/string2/g' Replace string1 with string2
 2 sed 's/\(.*\)1/\12/g' Modify anystring1 to anystring2
 3 sed '/ *#/d; /^ *$/d' Remove comments and blank lines
 4
 sed ':a; /\\$/N; s/\\\n//; ta' Concatenate lines with trailing \
 5 sed 's/[ \t]*$//' Remove trailing spaces from lines
 6 sed 's/\([`"$\]\)/\\\1/g' Escape shell metacharacters active within double quotes
 7 seq 10 | sed "s/^/      /; s/ *\(.\{7,\}\)/\1/" Right align numbers
 8 sed -n '1000p;1000q' Print 1000th line
 9 sed -n '10,20p;20q' Extract title from HTML web page
 10 sed -n 's/.*\(.*\).*/\1/ip;T;q' 
 12 sort -t. -k1,1n -k2,2n -k3,3n -k4,4n Delete a particular line
 13 echo 'Test' | tr '[:lower:]' '[:upper:]' Sort IPV4 ip addresses
 14 tr -dc '[:print:]' < /dev/urandom Case conversion
 15 history | wc -l Count lines
 Set operations (Note you can export LANG=C for speed. Also these assume no duplicate lines within a file) 
 1 sort file1 file2 | uniq Union of unsorted files
 2 sort file1 file2 | uniq -d Intersection of unsorted files
 3 sort file1 file1 file2 | uniq -u Difference of unsorted files
 4 sort file1 file2 | uniq -u Symmetric Difference of unsorted files
 5 join -a1 -a2 file1 file2 Union of sorted files
 6 join file1 file2 Intersection of sorted files
 7 join -v2 file1 file2 Difference of sorted files
 8 join -v1 -v2 file1 file2 Symmetric Difference of sorted files
                                                                          Math 
 1 echo '(1 + sqrt(5))/2' | bc -lQuick math (Calculate φ). See also bc
 2 echo 'pad=20; min=64; (100*10^6)/((pad+min)*8)' | bcMore complex (int) e.g. This shows max FastE packet rate
 3 echo 'pad=20; min=64; print (100E6)/((pad+min)*8)' | pythonPython handles scientific notation
 4echo 'pad=20; plot [64:1518] (100*10**6)/((pad+x)*8)' | gnuplot -persist
Plot FastE packet rate vs packet size
 5 echo 'obase=16; ibase=10; 64206' | bcBase conversion (decimal to hexadecimal)
 6 echo $((0x2dec))Base conversion (hex to dec) ((shell arithmetic expansion))
 7 units -t '100m/9.69s' 'miles/hour' Unit conversion (metric to imperial)
 8 units -t '500GB' 'GiB' Unit conversion (SI to IEC prefixes)
 9 units -t '1 googol' Definition lookup
 10 seq 100 | (tr '\n' +; echo 0) | bc Add a column of numbers.
 Calendar
 
 1 cal -3 Display a calendar
 2 cal 9 1752 Display a calendar for a particular month year
 3 date -d fri What date is it this friday.
 4 [ $(date -d "tomorrow" +%d) = "01" ] || exit exit a script unless it's the last day of the month
 5 date --date='25 Dec' +%A What day does xmas fall on, this year
 6 date --date='@2147483647'Convert seconds since the epoch (1970-01-01 UTC) to date
 7 TZ=':America/Los_Angeles' date What time is it on West coast of US (use tzselect to find TZ)
 8 echo "mail -s 'get the train' This e-mail address is being protected from spambots. You need JavaScript enabled to view it < /dev/null" | at 17:45 Email reminder
 9 echo "DISPLAY=$DISPLAY xmessage cooker" | at "NOW + 30 minutes" Popup reminder
 CDs
 
 1 gzip cdrom.iso.gz Save copy of data cdrom
 2 mkisofs -V LABEL -r dir | gzip > cdrom.iso.gz Create cdrom image from contents of dir
 3 mount -o loop cdrom.iso /mnt/dir Mount the cdrom image at /mnt/dir (read only)
 4 cdrecord -v dev=/dev/cdrom blank=fast Clear a CDRW
 5 gzip -dc cdrom.iso.gz | cdrecord -v dev=/dev/cdrom - Burn cdrom image (use dev=ATAPI -scanbus to confirm dev)
 6 cdparanoia -B Rip audio tracks from CD to wav files in current dir
 7 cdrecord -v dev=/dev/cdrom -audio *.wav Make audio CD from all wavs in current dir (see also cdrdao)
 8 oggenc --tracknum='track' track.cdda.wav -o 'track.ogg' Make ogg file from wav file
  disk space  
 1 ls -lSr Show files by size, biggest last
 2 du -s * | sort -k1,1rn | head Show top disk users in current dir.
 3 df -h Show free space on mounted filesystems
 4 df -i
 Show free inodes on mounted filesystems
 5 fdisk -l Show disks partitions sizes and types (run as root)
 6 rpm -q -a --qf '%10{SIZE}\t%{NAME}\n' | sort -k1,1nList all packages by installed size (Bytes) on rpm distros
 7 dpkg-query -W -f='${Installed-Size;10}\t${Package}\n' | sort -k1,1n List all packages by installed size (KBytes) on deb distros
Last Updated on Monday, 18 May 2009 12:34
 

Who's Online

We have 2 guests online

Site Stats

Content View Hits : 39123