0% found this document useful (0 votes)
74 views12 pages

Threadsafe Man: Command Description

This document provides summaries of Linux commands for directory navigation, file searching, archives/compression, rsync, and ssh. Some highlighted commands include cd to change directories, ls to list files, find to search for files, tar and gzip to create compressed archives, rsync to synchronize files over a network, and ssh to securely execute commands on a remote server.

Uploaded by

vidyaveda4
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOC, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
74 views12 pages

Threadsafe Man: Command Description

This document provides summaries of Linux commands for directory navigation, file searching, archives/compression, rsync, and ssh. Some highlighted commands include cd to change directories, ls to list files, find to search for files, tar and gzip to create compressed archives, rsync to synchronize files over a network, and ssh to securely execute commands on a remote server.

Uploaded by

vidyaveda4
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOC, PDF, TXT or read online on Scribd
You are on page 1/ 12

Command Description

Show commands
• apropos whatis pertinent to string.
See also threadsafe
make a pdf of a
• man -t ascii | ps2pdf - > ascii.pdf
manual page
Show full path name
  which command
of command
See how long a
  time command
command takes
Start stopwatch. Ctrl-
• time cat
d to stop. See also sw
dir navigation
Go to previous
• cd -
directory
Go to $HOME
• cd
directory
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. See
• ls -lrt 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
  find -maxdepth 1 -type d | while read dir; do echo $dir; echo cmd2; done Process each item
with multiple
commands (in while
loop)
Find files not readable
• find -type f ! -perm -444 by all (useful for web
site)
Find dirs not
• find -type d ! -perm -111 accessible by all
(useful for web site)
Search cached index
• locate -r 'file[^/]*\.txt' for names. This re is
like glob *file*.txt
Quickly search
• look reference (sorted) dictionary for
prefix
Highlight occurances
• grep --color reference /usr/share/dict/words of 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 of=dir.tar.gz.gpg' archive of dir/ on
remote machine
Make archive of
  find dir/ -name '*.txt' | tar -c --files-from=- | bzip2 > dir_txt.tar.bz2 subset of dir/ and
below
Make copy of subset
  find dir/ -name '*.txt' | xargs cp -a --target-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
permissions) contents
  ( cd /dir/to/copy && tar -c . ) | ( cd /where/to/ && tar -x -p )
of copy/ dir to
/where/to/
  ( 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
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://rsync.server.com/path/to/file file
troublesome
downloads
Locally copy with
  rsync --bwlimit=1000 fromfile tofile rate limit. It's like nice
for I/O
Mirror web site (using
  rsync -az -e ssh --delete ~/public_html/ remote.com:'~/public_html' compression and
encryption)
Synchronize current
  rsync -auz -e ssh remote:/dir/ . && rsync -auz -e ssh . remote:/dir/ directory with remote
one
ssh (Secure SHell)
Run command on
$HOST as $USER
  ssh $USER@$HOST command
(default
command=shell)
Run GUI command
• ssh -f -Y $USER@$HOSTNAME xeyes on $HOSTNAME as
$USER
Copy with
permissions to
  scp -p -r $USER@$HOST: file dir/
$USER's home
directory on $HOST
Use faster crypto for
  scp -c arcfour $USER@$LANHOST: bigfile local LAN. This
might saturate GigE
Forward connections
to
  ssh -g -L 8080:localhost:80 root@$HOST
$HOSTNAME:8080
out to $HOST:80
Forward connections
  ssh -R 1434:imap:143 root@$HOST from $HOST:1434 in
to imap:143
  ssh-copy-id $USER@$HOST Install public key for
$USER@$HOST for
password-less log in
wget (multi purpose download tool)
Store local browsable
• (cd dir/ && wget -nd -pHEKk http://www.pixelbeat.org/cmdline.html) version of a page to
the current dir
Continue
downloading a
  wget -c http://www.example.com/large.file
partially downloaded
file
Download a set of
  wget -r -nd -np -l1 -A '*.jpg' http://www.example.com/dir/ files to the current
directory
FTP supports
  wget ftp://remote/file[1-9].iso/
globbing directly
Process output
• wget -q -O- http://www.pixelbeat.org/timeline.html | grep 'a href' | head
directly
Download url at 1AM
  echo 'wget url' | at 01:00
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 http://www.example.com/ 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 eth0
Manually set ethernet
  ethtool --change eth0 autoneg off speed 100 duplex full
interface speed
Show status of
  iwconfig eth1 wireless interface
eth1
Manually set wireless
  iwconfig eth1 rate 1Mb/s fixed
interface speed
List wireless
• iwlist scan
networks in range
List network
• ip link show
interfaces
  ip link set dev eth0 name wan Rename interface
eth0 to wan
Bring interface eth0
  ip link set dev eth0 up
up (or down)
List addresses for
• ip addr show
interfaces
Add (or del) ip and
  ip addr add 1.2.3.4/24 brd + dev eth0
mask (255.255.255.0)
• ip route show List routing table
Set default gateway to
  ip route add default via 1.2.3.254
1.2.3.254
Lookup DNS ip
• host pixelbeat.org address for name or
vice versa
Lookup local ip
• hostname -i address (equivalent to
host `hostname`)
Lookup whois info
• whois pixelbeat.org for hostname or ip
address
List internet services
• netstat -tupl
on a system
List active
• netstat -tup connections to/from
system
windows networking (Note samba is the package that provides all this windows specific
networking support)
Find windows
• smbtree machines. See also
findsmb
Find the windows
(netbios) name
  nmblookup -A 1.2.3.4
associated with ip
address
List shares on
  smbclient -L windows_box windows machine or
samba server
Mount a windows
  mount -t smbfs -o fmask=666,guest //windows_box/share /mnt/share
share
  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)
Replace string1 with
  sed 's/string1/string2/g'
string2
Modify anystring1 to
  sed 's/\(.*\)1/\12/g'
anystring2
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 quotes
• 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
line
Sort IPV4 ip
  sort -t. -k1,1n -k2,2n -k3,3n -k4,4n
addresses
• echo 'Test' | tr '[:lower:]' '[:upper:]' Case conversion
Filter non printable
• tr -dc '[:print:]' < /dev/urandom
characters
cut fields separated by
• tr -s '[:blank:]' '\t' </proc/diskstats | cut -f4
blanks
• 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
files
Intersection of
  sort file1 file2 | uniq -d
unsorted files
Difference of
  sort file1 file1 file2 | uniq -u
unsorted files
Symmetric Difference
  sort file1 file2 | uniq -u
of unsorted files
  join -t'\0' -a1 -a2 file1 file2 Union of sorted files
Intersection of sorted
  join -t'\0' file1 file2
files
Difference of sorted
  join -t'\0' -v2 file1 file2
files
Symmetric Difference
  join -t'\0' -v1 -v2 file1 file2
of sorted files
math
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
Plot FastE packet rate
• echo 'pad=20; plot [64:1518] (100*10**6)/((pad+x)*8)' | gnuplot -persist
vs packet size
Base conversion
• echo 'obase=16; ibase=10; 64206' | bc (decimal to
hexadecimal)
Base conversion (hex
to dec) ((shell
• echo $((0x2dec))
arithmetic
expansion))
Unit conversion
• units -t '100m/9.58s' 'miles/hour'
(metric to imperial)
Unit conversion (SI to
• units -t '500GB' 'GiB'
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
calendar
• cal -3 Display a calendar
Display a calendar for
• cal 9 1752 a particular month
year
What date is it this
• date -d fri
friday. See also day
exit a script unless it's
• [ $(date -d "tomorrow" +%d) = "01" ] || exit the last day of the
month
What day does xmas
• date --date='25 Dec' +%A
fall on, this year
Convert seconds since
• date --date='@2147483647' the epoch (1970-01-
01 UTC) to date
What time is it on
• TZ='America/Los_Angeles' date west coast of US (use
tzselect to find TZ)
What's the local time
• date --date='TZ="America/Los_Angeles" 09:00 next Fri' for 9AM next Friday
on west coast US
locales
Print number with
• printf "%'d\n" 1234 thousands grouping
appropriate to locale
Use locale thousands
• BLOCK_SIZE=\'1 ls -l grouping in ls. See
also l
Extract info from
• echo "I live in `locale territory`"
locale database
Lookup locale info
• LANG=en_IE.utf8 locale int_prefix for specific country.
See also ccodes
List fields available in
• locale | cut -d= -f1 | xargs locale -kc | less
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
conversion)
Windows utf8 to local
  recode utf-8/CRLF.. file_to_change.txt
charset
  recode iso-8859-15..utf8 file_to_change.txt Latin9 (western
europe) to utf8
  recode ../b64 < file.txt > file.b64 Base64 encode
Quoted printable
  recode /qp.. < file.qp > file.txt
decode
  recode ..HTML < file.txt > file.html Text to HTML
Lookup table of
• recode -lf windows-1252 | grep euro
characters
Show what a code
• echo -n 0x80 | recode latin-9/x1..dump represents in latin-9
charmap
Show latin-9
• echo -n 0x20AC | recode ucs-2/x2..latin-9/x
encoding
• echo -n 0x20AC | recode ucs-2/x2..utf-8/x Show utf-8 encoding
CDs
Save copy of data
  gzip < /dev/cdrom > cdrom.iso.gz
cdrom
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
dev)
Rip audio tracks from
  cdparanoia -B CD to wav files in
current dir
Make audio CD from
  cdrecord -v dev=/dev/cdrom -audio -pad *.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
Sort paths by easy to
• du -hs /home/* | sort -k1,1h
interpret disk usage
Show free space on
• df -h
mounted filesystems
Show free inodes on
• df -i
mounted filesystems
Show disks partitions
• fdisk -l 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
installed size
• dpkg-query -W -f='${Installed-Size;10}\t${Package}\n' | sort -k1,1n
(KBytes) on deb
distros
Create a large test file
• dd bs=1 seek=2TB if=/dev/null of=ext3.test (taking no space). See
also truncate
truncate data of file or
• > file
create an empty file
monitoring/debugging
Monitor messages in
• tail -f /var/log/messages
a log file
Summarise/profile
• strace -c ls >/dev/null system calls made by
command
List system calls
• strace -f -e open ls >/dev/null
made by command
Monitor what's
• strace -f -e trace=write -e write=1,2 ls >/dev/null written to stdout and
stderr
List library calls made
• ltrace -f -e getenv ls >/dev/null
by command
List paths that process
• lsof -p $$
id has open
List processes that
• lsof ~ have specified path
open
• tcpdump not port 22 Show network traffic
except ssh. See also
tcpdump_not_me
List processes in a
• ps -e -o pid,args --forest
hierarchy
List processes by %
• ps -e -o pcpu,cpu,nice,state,cputime,args --sort pcpu | sed '/^ 0.0 /d'
cpu usage
List processes by
• ps -e -orss=,args= | sort -b -k1,1n | pr -TW$COLUMNS mem (KB) usage. See
also ps_mem.py
List all threads for a
• ps -C firefox-bin -L -o pid,tid,pcpu,state
particular process
List elapsed wall time
• ps -p 1,$$ -o etime= for particular process
IDs
Show system reboot
• last reboot
history
Show amount of
• free -m (remaining) RAM (-m
displays in MB)
Watch changeable
• watch -n.1 'cat /proc/interrupts'
data continuously
Monitor udev events
• udevadm monitor to help configure
rules
system information (see also sysinfo) ('#' means root access is required)
Show kernel version
• uname -a and system
architecture
Show name and
• head -n1 /etc/issue
version of distribution
Show all partitions
• cat /proc/partitions registered on the
system
Show RAM total seen
• grep MemTotal /proc/meminfo
by the system
• grep "model name" /proc/cpuinfo Show CPU(s) info
• lspci -tv Show PCI info
• lsusb -tv Show USB info
• mount | column -t List mounted
filesystems on the
system (and align
output)
Show state of cells in
• grep -F capacity: /proc/acpi/battery/BAT0/info
laptop battery
Display
# dmidecode -q | less SMBIOS/DMI
information
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
sda
Do a read speed test
# hdparm -tT /dev/sda
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
• mc that can browse rpm,
tar, ftp, ssh, ...
Interactive/scriptable
• gnuplot
graphing
• links Web browser
open a file or url with
• xdg-open . the registered desktop
application

You might also like