Command Line - Linux Cheet Sheet

Document Sample
Command Line - Linux Cheet Sheet Powered By Docstoc
					Command                                               Description
                                                      Show commands
• apropos whatis                                      pertinent to string.
                                                      See also threadsafe
                                                      make a pdf of a
• man -t man | ps2pdf - > man.pdf
                                                      manual page
                                                      Show full path name
 which command
                                                      of command
                                                      See how long a
 time command
                                                      command takes
                                                      Start stopwatch.
• time cat                                            Ctrl-d to stop. See
                                                      also sw
                                                      Run a low priority
                                                      command (The
• nice info
                                                      "info" reader in this
                                                      Make shell (script)
• renice 19 -p $$                                     low priority. Use for
                                                      non interactive tasks
dir navigation
                                                      Go to previous
• cd -
                                                      Go to $HOME
• cd
                                                      Go to dir, execute
 (cd dir && command)                                  command and return
                                                      to current dir
                                                      Put current dir on
• pushd .                                             stack so you can
                                                      popd back to it
file searching
• alias l='ls -l --color=auto'                        quick dir listing
                                                      List files by date.
• ls -lrt                                             See also newest
                                                      and find_mm_yyyy
                                                      Print in 9 columns to
• ls /usr/bin | pr -T9 -W$COLUMNS
                                                      width of terminal
                                                      Search 'expr' in this
 find -name '*.[ch]' | xargs grep -E 'expr'           dir and below. See
                                                      also findrepo
                                                      Search all regular
 find -type f -print0 | xargs -r0 grep -F 'example'   files for 'example' in
                                                      this dir and below
                                                      Search all regular
 find -maxdepth 1 -type f | xargs grep -F 'example'   files for 'example' in
                                                      this dir
                                                               Process each item
 find -maxdepth 1 -type d | while read dir; do echo $dir;      with multiple
 echo cmd2; done                                               commands (in while
                                                               Find files not
• find -type f ! -perm -444                                    readable by all
                                                               (useful for web site)
                                                               Find dirs not
• find -type d ! -perm -111                                    accessible by all
                                                               (useful for web site)
                                                               Search cached
                                                               index for names.
• locate -r 'file[^/]*\.txt'
                                                               This re is like glob
                                                               Quickly search
• look reference                                               (sorted) dictionary
                                                               for prefix
                                                               occurances of
• grep --color reference /usr/share/dict/words
                                                               regular expression
                                                               in dictionary
archives and compression
 gpg -c file                                                 Encrypt file
 gpg file.gpg                                                Decrypt file
                                                             Make compressed
 tar -c dir/ | bzip2 > dir.tar.bz2
                                                             archive of dir/
                                                             Extract archive (use
 bzip2 -dc dir.tar.bz2 | tar -x                              gzip instead of bzip2
                                                             for tar.gz files)
                                                             Make encrypted
 tar -c dir/ | gzip | gpg -c | ssh user@remote 'dd
                                                             archive of dir/ on
 of=dir.tar.gz.gpg'                                          remote machine
                                                             Make archive of
 find dir/ -name '*.txt' | tar -c --files-from=- | bzip2 >
                                                             subset of dir/ and
 dir_txt.tar.bz2                                             below
 find dir/ -name '*.txt' | xargs cp -a --target-             Make copy of subset
 directory=dir_txt/ --parents                                of dir/ and below
                                                             Copy (with
 ( tar -c /dir/to/copy ) | ( cd /where/to/ && tar -x -p )    permissions) copy/
                                                             dir to /where/to/ dir
                                                             Copy (with
 ( cd /dir/to/copy && tar -c . ) | ( cd /where/to/ && tar -x permissions)
 -p )                                                        contents of copy/ dir
                                                             to /where/to/
                                                             Copy (with
 ( tar -c /dir/to/copy ) | ssh -C user@remote 'cd /where/to/ permissions) copy/
 && tar -x -p'                                               dir to
                                                             remote:/where/to/ dir
                                                              Backup harddisk to
    dd bs=1M if=/dev/sda | gzip | ssh user@remote 'dd of=sda.gz'
                                                              remote machine
rsync (Network efficient file copier: Use the --dry-run option for testing)
                                                              Only get diffs. Do
                                                              multiple times for
 rsync -P rsync:// file
                                                              Locally copy with
 rsync --bwlimit=1000 fromfile tofile                         rate limit. It's like
                                                              nice for I/O
                                                              Mirror web site
 rsync -az -e ssh --delete ~/public_html/
                                                              (using compression'~/public_html'                                   and encryption)
                                                              Synchronize current
 rsync -auz -e ssh remote:/dir/ . && rsync -auz -e ssh .
                                                              directory with
 remote:/dir/                                                 remote one
ssh (Secure SHell)
                                                                   Run command on
                                                                   $HOST as $USER
    ssh $USER@$HOST command
                                                                   Run GUI command
• ssh -f -Y $USER@$HOSTNAME xeyes                                  on $HOSTNAME as
                                                                   Copy with
                                                                   permissions to
    scp -p -r $USER@$HOST: file dir/
                                                                   $USER's home
                                                                   directory on $HOST
                                                                   connections to
    ssh -g -L 8080:localhost:80 root@$HOST
                                                                   out to $HOST:80
                                                                   connections from
    ssh -R 1434:imap:143 root@$HOST
                                                                   $HOST:1434 in to
wget (multi purpose download tool)
                                                                   Store local
    (cd dir/ && wget -nd -pHEKk                                    browsable version of
•                         a page to the current
                                                                   downloading a
    wget -c
                                                                   partially downloaded
                                                                   Download a set of
    wget -r -nd -np -l1 -A '*.jpg'     files to the current
                                                               FTP supports
 wget ftp://remote/file[1-9].iso/
                                                               globbing directly
  wget -q -O- | grep 'a Process output
  href' | head                                                 directly
                                                               Download url at
  echo 'wget url' | at 01:00
                                                               1AM to current dir
                                                               Do a low priority
  wget --limit-rate=20k url                                    download (limit to
                                                               20KB/s in this case)
  wget -nv --spider --force-html -i bookmarks.html             Check links in a file
                                                               Efficiently update a
  wget --mirror                        local copy of a site
                                                               (handy from cron)
networking (Note ifconfig, route, mii-tool, nslookup commands are obsolete)
                                                               Show status of
  ethtool eth0                                                 ethernet interface
                                                               Manually set
  ethtool --change eth0 autoneg off speed 100 duplex full      ethernet interface
                                                               Show status of
  iwconfig eth1                                                wireless interface
                                                               Manually set
  iwconfig eth1 rate 1Mb/s fixed                               wireless interface
                                                               List wireless
• iwlist scan
                                                               networks in range
                                                               List network
• ip link show
                                                               Rename interface
  ip link set dev eth0 name wan
                                                               eth0 to wan
                                                               Bring interface eth0
  ip link set dev eth0 up
                                                               up (or down)
                                                               List addresses for
• ip addr show
                                                               Add (or del) ip and
  ip addr add brd + dev eth0                        mask
• ip route show                                                List routing table
                                                               Set default gateway
  ip route add default via
                                                               Add 20ms latency to
• tc qdisc add dev lo root handle 1:0 netem delay 20msec       loopback device (for
                                                               Remove latency
• tc qdisc del dev lo root
                                                               added above
                                                              Lookup DNS ip
• host                                          address for name or
                                                              vice versa
                                                              Lookup local ip
• hostname -i                                                 address (equivalent
                                                              to host `hostname`)
                                                              Lookup whois info
• whois                                         for hostname or ip
                                                              List internet services
• netstat -tupl
                                                              on a system
                                                              List active
• netstat -tup                                                connections to/from
windows networking (Note samba is the package that provides all this windows
specific networking support)
                                                              Find windows
• smbtree                                                     machines. See also
                                                              Find the windows
                                                              (netbios) name
  nmblookup -A
                                                              associated with ip
                                                              List shares on
  smbclient -L windows_box                                    windows machine or
                                                              samba server
  mount -t smbfs -o fmask=666,guest //windows_box/share       Mount a windows
  /mnt/share                                                  share
                                                              Send popup to
                                                              windows machine
  echo 'message' | smbclient -M windows_box
                                                              (off by default in XP
text manipulation (Note sed uses stdin and stdout. Newer versions support
inplace editing with the -i option)
                                                              Replace string1 with
  sed 's/string1/string2/g'
                                                              Modify anystring1 to
  sed 's/\(.*\)1/\12/g'
                                                              Remove comments
  sed '/ *#/d; /^ *$/d'
                                                              and blank lines
                                                              Concatenate lines
  sed ':a; /\\$/N; s/\\\n//; ta'
                                                              with trailing \
                                                              Remove trailing
  sed 's/[ \t]*$//'
                                                              spaces from lines
                                                              Escape shell
  sed 's/\([`"$\]\)/\\\1/g'                                   metacharacters
                                                              active within double
• seq 10 | sed "s/^/      /; s/ *\(.\{7,\}\)/\1/"             Right align numbers
  sed -n '1000{p;q}'                                          Print 1000th line
  sed -n '10,20p;20q'                                         Print lines 10 to 20
                                                              Extract title from
  sed -n 's/.*<title>\(.*\)<\/title>.*/\1/ip;T;q'
                                                              HTML web page
                                                              Delete a particular
  sed -i 42d ~/.ssh/known_hosts
                                                              Sort IPV4 ip
  sort -t. -k1,1n -k2,2n -k3,3n -k4,4n
• echo 'Test' | tr '[:lower:]' '[:upper:]'                    Case conversion
                                                              Filter non printable
• tr -dc '[:print:]' < /dev/urandom
• history | wc -l                                             Count lines
set operations (Note you can export LANG=C for speed. Also these assume no
duplicate lines within a file)
                                                              Union of unsorted
  sort file1 file2 | uniq
                                                              Intersection of
  sort file1 file2 | uniq -d
                                                              unsorted files
                                                              Difference of
  sort file1 file1 file2 | uniq -u
                                                              unsorted files
  sort file1 file2 | uniq -u                                  Difference of
                                                              unsorted files
  join -t'\0' -a1 -a2 file1 file2                             Union of sorted files
                                                              Intersection of
  join -t'\0' file1 file2
                                                              sorted files
                                                              Difference of sorted
  join -t'\0' -v2 file1 file2
  join -t'\0' -v1 -v2 file1 file2                             Difference of sorted
                                                              Quick math
• echo '(1 + sqrt(5))/2' | bc -l                              (Calculate φ). See
                                                              also bc
                                                              More complex (int)
• echo 'pad=20; min=64; (100*10^6)/((pad+min)*8)' | bc        e.g. This shows max
                                                              FastE packet rate
                                                              Python handles
• echo 'pad=20; min=64; print (100E6)/((pad+min)*8)' | python
                                                              scientific notation
  echo 'pad=20; plot [64:1518] (100*10**6)/((pad+x)*8)' |     Plot FastE packet
  gnuplot -persist                                            rate vs packet size
                                                              Base conversion
• echo 'obase=16; ibase=10; 64206' | bc
                                                              (decimal to
                                                                Base conversion
                                                                (hex to dec) ((shell
• echo $((0x2dec))
                                                                Unit conversion
• units -t '100m/9.58s' 'miles/hour'
                                                                (metric to imperial)
                                                                Unit conversion (SI
• units -t '500GB' 'GiB'
                                                                to IEC prefixes)
• units -t '1 googol'                                           Definition lookup
                                                                Add a column of
• seq 100 | (tr '\n' +; echo 0) | bc                            numbers. See also
                                                                add and funcpy
• cal -3                                                        Display a calendar
                                                                Display a calendar
• cal 9 1752                                                    for a particular
                                                                month year
                                                                What date is it this
• date -d fri
                                                                friday. See also day
                                                                exit a script unless
• [ $(date -d "tomorrow" +%d) = "01" ] || exit                  it's the last day of
                                                                the month
                                                                What day does
• date --date='25 Dec' +%A                                      xmas fall on, this
                                                                Convert seconds
                                                                since the epoch
• date --date='@2147483647'
                                                                (1970-01-01 UTC) to
                                                                What time is it on
                                                                West coast of US
• TZ=':America/Los_Angeles' date
                                                                (use tzselect to find
  echo "mail -s 'get the train' < /dev/null"
                                                              Email reminder
  | at 17:45
  echo "DISPLAY=$DISPLAY xmessage cooker" | at "NOW + 30
•                                                             Popup reminder
                                                              Print number with
• printf "%'d\n" 1234                                         thousands grouping
                                                              appropriate to locale
                                                              get ls to do
• BLOCK_SIZE=\'1 ls -l                                        thousands grouping
                                                              appropriate to locale
• echo "I live in `locale territory`"                         Extract info from
                                                        locale database
                                                        Lookup locale info
• LANG=en_IE.utf8 locale int_prefix                     for specific country.
                                                        See also ccodes
                                                        List fields available
• locale | cut -d= -f1 | xargs locale -kc | less
                                                        in locale database
recode (Obsoletes iconv, dos2unix, unix2dos)
                                                        Show available
• recode -l | less                                      conversions (aliases
                                                        on each line)
                                                        Windows "ansi" to
                                                        local charset (auto
 recode windows-1252.. file_to_change.txt
                                                        does CRLF
                                                        Windows utf8 to
 recode utf-8/CRLF.. file_to_change.txt
                                                        local charset
                                                        Latin9 (western
 recode iso-8859-15..utf8 file_to_change.txt
                                                        europe) to utf8
 recode ../b64 < file.txt > file.b64                    Base64 encode
                                                        Quoted printable
 recode /qp.. < file.txt > file.qp
 recode ..HTML < file.txt > file.html                   Text to HTML
                                                        Lookup table of
• recode -lf windows-1252 | grep euro
                                                        Show what a code
• echo -n 0x80 | recode latin-9/x1..dump                represents in latin-9
                                                        Show latin-9
• echo -n 0x20AC | recode ucs-2/x2..latin-9/x
• echo -n 0x20AC | recode ucs-2/x2..utf-8/x             Show utf-8 encoding
                                                        Save copy of data
 gzip < /dev/cdrom > cdrom.iso.gz
                                                        Create cdrom image
 mkisofs -V LABEL -r dir | gzip > cdrom.iso.gz
                                                        from contents of dir
                                                        Mount the cdrom
 mount -o loop cdrom.iso /mnt/dir                       image at /mnt/dir
                                                        (read only)
 cdrecord -v dev=/dev/cdrom blank=fast                  Clear a CDRW
                                                        Burn cdrom image
                                                        (use dev=ATAPI -
 gzip -dc cdrom.iso.gz | cdrecord -v dev=/dev/cdrom -
                                                        scanbus to confirm
                                                        Rip audio tracks
 cdparanoia -B                                          from CD to wav files
                                                        in current dir
                                                                 Make audio CD from
 cdrecord -v dev=/dev/cdrom -audio *.wav                         all wavs in current
                                                                 dir (see also cdrdao)
                                                                 Make ogg file from
 oggenc --tracknum='track' track.cdda.wav -o 'track.ogg'
                                                                 wav file
disk space (See also FSlint)
                                                               Show files by size,
• ls -lSr
                                                               biggest last
                                                               Show top disk users
• du -s * | sort -k1,1rn | head                                in current dir. See
                                                               also dutop
                                                               Show free space on
• df -h
                                                               mounted filesystems
                                                               Show free inodes on
• df -i
                                                               mounted filesystems
                                                               Show disks
• fdisk -l                                                     partitions sizes and
                                                               types (run as root)
                                                               List all packages by
• rpm -q -a --qf '%10{SIZE}\t%{NAME}\n' | sort -k1,1n          installed size (Bytes)
                                                               on rpm distros
                                                               List all packages by
  dpkg-query -W -f='${Installed-Size;10}\t${Package}\n' | sort installed size
  -k1,1n                                                       (KBytes) on deb
                                                               Create a large test
                                                               file (taking no
• dd bs=1 seek=2TB if=/dev/null of=ext3.test
                                                               space). See also
                                                               truncate data of file
• > file                                                       or create an empty
                                                               Monitor messages in
• tail -f /var/log/messages
                                                               a log file
• strace -c ls >/dev/null                                      system calls made
                                                               by command
                                                               List system calls
• strace -f -e open ls >/dev/null
                                                               made by command
                                                               List library calls
• ltrace -f -e getenv ls >/dev/null
                                                               made by command
                                                               List paths that
• lsof -p $$
                                                               process id has open
                                                               List processes that
• lsof ~                                                       have specified path
                                                              Show network traffic
• tcpdump not port 22                                         except ssh. See also
                                                              List processes in a
• ps -e -o pid,args --forest
  ps -e -o pcpu,cpu,nice,state,cputime,args --sort pcpu | sed List processes by %
  '/^ 0.0 /d'                                                 cpu usage
                                                              List processes by
                                                              mem (KB) usage.
• ps -e -orss=,args= | sort -b -k1,1n | pr -TW$COLUMNS
                                                              See also
                                                              List all threads for a
• ps -C firefox-bin -L -o pid,tid,pcpu,state
                                                              particular process
                                                              List info for
• ps -p 1,2                                                   particular process
                                                              Show system reboot
• last reboot
                                                              Show amount of
• free -m                                                     (remaining) RAM (-
                                                              m displays in MB)
                                                              Watch changeable
• watch -n.1 'cat /proc/interrupts'
                                                              data continuously
system information (see also sysinfo) ('#' means root access is required)
                                                              Show kernel version
• uname -a                                                    and system
                                                              Show name and
• head -n1 /etc/issue                                         version of
                                                              Show all partitions
• cat /proc/partitions                                        registered on the
                                                              Show RAM total
• grep MemTotal /proc/meminfo
                                                              seen by the system
• grep "model name" /proc/cpuinfo                             Show CPU(s) info
• lspci -tv                                                   Show PCI info
• lsusb -tv                                                   Show USB info
                                                              List mounted
                                                              filesystems on the
• mount | column -t
                                                              system (and align
                                                              Show state of cells
• grep -F capacity: /proc/acpi/battery/BAT0/info
                                                              in laptop battery
# dmidecode -q | less                                         SMBIOS/DMI
                                                  How long has this
# smartctl -A /dev/sda | grep Power_On_Hours      disk (system) been
                                                  powered on in total
                                                  Show info about disk
# hdparm -i /dev/sda
                                                  Do a read speed
# hdparm -tT /dev/sda
                                                  test on disk sda
                                                  Test for unreadable
# badblocks -s /dev/sda
                                                  blocks on disk sda
interactive (see also linux keyboard shortcuts)
                                                  Line editor used by
• readline                                        bash, python, bc,
                                                  gnuplot, ...
                                                  Virtual terminals with
• screen
                                                  detach capability, ...
                                                  Powerful file
                                                  manager that can
• mc
                                                  browse rpm, tar, ftp,
                                                  ssh, ...
• gnuplot
• links                                           Web browser
                                                  open a file or url with
• xdg-open .                                      the registered
                                                  desktop application

                                                  Handy hexdump.
                                                  (usage e.g.: • hd
• alias hd='od -Ax -tx1z -v'
                                                  /proc/self/cmdline |
                                                  Canonicalize path.
                                                  (usage e.g.: •
• alias realpath='readlink -f'
                                                  Search current
• set | grep $USER
                                                  Set file timestamp
 touch -c -t 0304050607 file
                                                  Serve current
                                                  directory tree at
• python -m SimpleHTTPServer

Description: Great presentation for web developers, programmers and other technology enthusiasts.