Small guide to the main Linux commands
8 agosto 2008, 9:56 Debian , Open Source , Report , Shell , System , Tips & Tricks August 8, 2008, 9:56
I reproduce the table in this post made by Pádraig Brady and published on its official website ( http://www.pixelbeat.org ).
The table shows some of the major commands to administer a Linux server, with a brief explanation and - in some cases - links to pages of detail.
This is a linux command line reference for common operations. Examples marked with • are valid / safe to paste without modification into a terminal, so you may want to keep a terminal window open while reading this so you can cut & paste . All These commands sono stati Both tested on Fedora and Ubuntu.
| Command | Description | |
| • | apropos whatis | Show commands pertinent to string. See also threadsafe |
| • | man -t man | ps2pdf -> man.pdf | make a pdf of a manual page |
| Which command | Show full path name of command | |
| time command | See how long a command takes | |
| • | time cat | Start stopwatch. Ctrl-d to stop. See also sw |
| • | nice info | Run a low priority command (The "info" reader in this case) |
| • | renice 19-p $ $ | Make shell (script) low priority. Use for non interactive tasks |
| dir navigation | ||
| • | cd - | Go to previous directory |
| • | CD | Go to $ HOME directory |
| (Cd dir && command) | Go to dir, execute command and return to current dir | |
| • | pushd. | Put current dir on stack so you can popd back to it |
| file searching | ||
| • | alias l = 'ls-l-color = auto' | quick dir listing |
| • | ls-lrt | List files by date. See also newest and find_mm_yyyy |
| • | ls / usr / bin | pr-T9-W $ COLUMNS | Print in 9 columns to width of terminal |
| find-name '*. [ch]' | xargs grep-E 'expr' | Search 'expr' in this dir and below. See also findrepo | |
| find-type f-print0 | xargs-r0 grep-F 'example' | Search all regular files for 'example' in this dir and below | |
| find-maxdepth 1-type f | xargs grep-F 'example' | Search all regular 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-type f! -Perm -444 | Find files not readable by all (useful for web site) |
| • | find-type d! -Perm -111 | Find dirs not accessible by all (useful for web site) |
| • | locate-r 'file [^ /] * \. txt' | Search cached index for names. This re is like glob * file *. Txt |
| • | reference look | Quickly search (sorted) dictionary for prefix |
| • | grep -color reference / usr / share / dict / words | Highlight occurances of regular expression in dictionary |
| archives and compression | ||
| gpg-c file | Encrypt files | |
| gpg file.gpg | Decrypt files | |
| tar-c dir / | bzip2> dir.tar.bz2 | Make compressed archive of dir / | |
| dir.tar.bz2 bzip2-dc | tar-x | Extract archive (use gzip instead of bzip2 for tar.gz files) | |
| tar-c dir / | gzip | gpg-c | ssh user @ remote 'dd of = dir.tar.gz.gpg' | Make encrypted archive of dir / on remote machine | |
| find dir /-name '*. txt' | tar-c-files-from = - | bzip2> dir_txt.tar.bz2 | Make archive of subset of dir / and below | |
| find dir /-name '*. txt' | xargs cp-a-target-directory = dir_txt /-parents | Make copy of subset of dir / and below | |
| (Tar-c / dir / to / copy) | (cd / where / to / && tar-x-p) | Copy (with permissions) copy / dir to / where / to / dir | |
| (Cd / dir / to / copy && tar-c.) | (Cd / where / to / && tar-x-p) | Copy (with permissions) contents 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 | |
| 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) | ||
| rsync-P rsync :/ / rsync.server.com / path / to / file file | Only get diffs. Do multiple times for troublesome downloads | |
| rsync-bwlimit = 1000 fromfile tofile | Locally copy with rate limit. It's like nice for I / O | |
| rsync-az-e ssh-delete ~ / public_html / remote.com: '~ / public_html' | Mirror web site (using compression and encryption) | |
| rsync-e ssh-AUZ remote :/ dir /. && rsync-e ssh-AUZ. remote :/ dir / | Synchronize current directory with remote one | |
| ssh (Secure SHell) | ||
| ssh $ USER @ $ HOST command | Run command on $ HOST as $ USER (default command = shell) | |
| • | ssh-f-Y $ USER @ $ HOSTNAME xeyes | Run GUI command on $ HOSTNAME as $ USER |
| scp-p-r $ USER @ $ HOST: file dir / | Copy with permissions to $ USER's home directory on $ HOST | |
| ssh-g-L 8080: localhost: 80 root @ $ HOST | Forward connections to $ HOSTNAME: 8080 out to $ HOST: 80 | |
| ssh-R 1434: imap: 143 root @ $ HOST | Forward connections from $ HOST: 1434 in to imap: 143 | |
| wget (multi purpose download tool) | ||
| • | (Cd cli && wget-nd-pHEKk http://www.pixelbeat.org/cmdline.html) | Store local browsable version of a page to the current dir |
| wget-c http://www.example.com/large.file | Continue downloading a partially downloaded file | |
| wget-r-nd-np-l1-A '*. jpg' http://www.example.com/dir/ | Download a set of files to the current directory | |
| wget ftp://remote/file [1-9]. iso / | Directly Supports FTP globbing | |
| • | wget-q-O-http://www.pixelbeat.org/timeline.html | grep 'a href' | head | Process Output Directly |
| echo 'wget url' | at 01:00 | Download url at 1AM to current dir | |
| wget-limit-rate = 20k url | Do a low priority download (limit to 20 KB / s in this case) | |
| wget-nv-spider-force-html-i bookmarks.html | Check links in a file | |
| 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) | ||
| ethtool eth0 | Show status of ethernet interface eth0 | |
| ethtool-change eth0 autoneg off speed 100 duplex full | Manually September ethernet interface speed | |
| iwconfig eth1 | Show status of wireless interface eth1 | |
| iwconfig eth1 rate 1Mb / s fixed | Manually Sept. speed wireless interface | |
| • | iwlist scan | List wireless networks in range |
| • | ip link show | List network interfaces |
| ip link set dev eth0 name wan | Rename interface eth0 to wan | |
| ip link set dev eth0 up | Bring interface eth0 up (or down) | |
| • | ip addr show | List addresses for interfaces |
| ip addr add 1.2.3.4/24 brd + dev eth0 | Add (or del) ip and mask (255.255.255.0) | |
| • | ip route show | List routing table |
| ip route add default via 1.2.3.254 | Set default gateway to 1.2.3.254 | |
| • | tc qdisc add dev lo root handle 1:0 netem delay 20msec | Add 20ms latency to loopback device (for testing) |
| • | tc qdisc dev of the root | Remove latency added above |
| • | host pixelbeat.org | Lookup DNS ip address for name or vice versa |
| • | hostname-i | Lookup local ip address (equivalent to host `hostname`) |
| • | whois pixelbeat.org | Lookup whois info for hostname or ip address |
| • | netstat-tupl | List internet services on a system |
| • | netstat-tup | List active connections to / from system |
| windows networking (Note samba is the package That Provides all this windows specific networking support) | ||
| • | smbtree | Find windows machines. See also findsmb |
| nmblookup-A 1.2.3.4 | Find the windows (netbios) name Associated with ip address | |
| smbclient-L windows_box | List shares on windows machine or samba server | |
| mount-t smbfs-o fmask = 666, guest / / windows_box / share / mnt / share | Mount a windows 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, so if you want to edit files, append <oldfile> newfile) | ||
| sed 's/string1/string2/g' | Replace string1 with string2 | |
| sed 's / \ (. * \) 1 / \ 12 / g' | Modify anystring1 to anystring2 | |
| sed '/ * # / d / ^ * $ / d' | Remove comments and blank lines | |
| sed ': a; / \ \ $ / N; s / \ \ \ n / /; ta' | Concatenate lines with trailing \ | |
| sed 's / [\ t] * $ / /' | Remove trailing spaces from lines | |
| sed 's / \ ([\ \ `\ \" $ \ \ \ \] \) / \ \ \ 1 / g' | Escape shell metacharacters active Within double quotes | |
| • | seq 10 | sed 's / ^ / /, s / * \ (. \ {7 \} \) / \ 1 / " | Right align numbers |
| sed-n '1000p; 1000q ' | Print 1000th line | |
| sed-n '10, 20p, 20q ' | Print lines 10 to 20 | |
| sed-n 's /. <title> * \ (. * \) <\ / title>. * / \ 1/ip, T, q' | Extract title from HTML web page | |
| sort-t. -K1, 1n-k2, 2n-k3, 3n-k4, 4n | Sort IPV4 ip addresses | |
| • | echo 'Test' | tr '[: lower:]' '[: upper:]' | Case conversion |
| • | tr-dc '[: print:]' </ dev / urandom | Filter non printable characters |
| • | history | wc-l | Count lines |
| September operations (Note you can export LANG = C for speed. Also assume no duplicate lines Within These files) | ||
| sort file1 file2 | uniq | Union of unsorted files | |
| sort file1 file2 | uniq-d | Intersection of unsorted files | |
| sort file1 file1 file2 | uniq-u | Difference of unsorted files | |
| sort file1 file2 | uniq-u | Symmetric Difference of unsorted files | |
| join-a1-a2 file1 file2 | Union of sorted files | |
| join file1 file2 | Intersection of sorted files | |
| join-v2 file1 file2 | Difference of sorted files | |
| join-v1-v2 file1 file2 | Symmetric Difference of sorted files | |
| math | ||
| • | echo '(1 + sqrt (5)) / 2' | bc-l | Quick math (Calculate φ). See also bc |
| • | echo 'pad = 20, min = 64, (100 * 10 ^ 6) / ((min + pad) * 8)' | bc | More complex (int) This shows g max packet rate Faste |
| • | echo 'pad = 20, min = 64, print (100E6) / ((min + pad) * 8)' | python | Python handles scientific notation |
| • | echo 'pad = 20; plot [64:1518] (100 * 10 ** 6) / ((x + pad) * 8)' | gnuplot-persist | Plot Faste packet rate vs. packet size |
| • | echo 'obase = 16; ibase = 10; 64206' | bc | Base conversion (decimal to hexadecimal) |
| • | echo $ ((0x2dec)) | Base conversion (hex to dec) ((shell arithmetic expansion)) |
| • | units-t '100m / 9.72s' 'miles / hour' | Unit conversion (metric to imperial) |
| • | '500GB units-t '' GiB ' | Unit conversion (SI to IEC prefixes) |
| • | units-t '1 googol ' | Definition lookup |
| • | seq 100 | (tr '\ n' + echo 0) | bc | Add a column of numbers. See also add and funcpy |
| calendar | ||
| • | cal -3 | Display calendar |
| • | cal 9 1752 | Display calendar month for a year particolare |
| • | date-d fri | What date is it this friday. See also day |
| • | date-date = '25 Dec '+% A | What day does xmas fall on, this year |
| • | date-date = '@ 2147483647' | Convert seconds since the epoch (UTC 01/01/1970) to date |
| • | TZ = ': America / Los_Angeles' date | What time is it on West coast of U.S. (use tzselect to find TZ) |
| echo "mail-s 'get the train' P@draigBrady.com </ dev / null" | at 17:45 | Email reminder | |
| • | echo "DISPLAY = $ DISPLAY xmessage cooker" | at "NOW + 30 minutes" | Popup reminder |
| locales | ||
| • | printf "% 'd \ n" 1234 | Print number with Thousands grouping appropriate to local |
| • | BLOCK_SIZE = \ '1 ls-l | Thousands get ls to do grouping to appropriate local |
| • | echo "I live in` locale `Territory ' | Extract info from locale database |
| • | LANG = en_IE.utf8 local int_prefix | Lookup Local info for specific country. See also ccodes |
| • | Local | cut-d =-f1 | xargs locale-kc | less | List fields available in the local database |
| recode (Obsoletes iconv, dos2unix, unix2dos) | ||
| • | recode-l | less | Show available conversions (aliases on Each Line) |
| recode windows-1252 .. file_to_change.txt | Windows "ansi" to local charset (auto does CRLF conversion) | |
| utf-8/CRLF recode .. file_to_change.txt | Windows utf8 to local charset | |
| recode iso-8859-15 .. utf8 file_to_change.txt | Latin9 (western europe) to utf8 | |
| recode .. / b64 <file.txt> file.b64 | Base64 encode | |
| recode / qp .. <File.txt> file.qp | Quoted printable decode | |
| recode .. HTML <file.txt> file.html | Text to HTML | |
| • | recode-lf windows-1252 | grep euro | Lookup table of characters |
| • | echo-n 0 × 80 | recode latin-9/x1..dump | Show what a code Represents in latin-9 charmap |
| • | echo-n 0x20AC | recode ucs-2/x2..latin-9/x | Show latin-9 encoding |
| • | echo-n 0x20AC | recode ucs-2/x2..utf-8/x | Show utf-8 encoding |
| CDs | ||
| gzip </ dev / cdrom> cdrom.iso.gz | Save copy of data cdrom | |
| mkisofs-V LABEL-r dir | gzip> cdrom.iso.gz | Create cdrom image from contents of dir | |
| cdrom.iso mount-o loop / mnt / dir | Mount the cdrom image at / mnt / dir (read only) | |
| cdrecord-v dev = / dev / cdrom blank = fast | Clear a CDRW | |
| gzip-dc cdrom.iso.gz | cdrecord-v dev = / dev / cdrom - | Burn cdrom image (use dev = ATAPI-scanbus to confirm dev) | |
| cdparanoia-B | Rip audio tracks from CD to wav files in current dir | |
| cdrecord-v dev = / dev / cdrom-audio *. wav | Make audio CD from all wavs in current dir (see also cdrdao) | |
| oggenc-tracknum = 'track' track.cdda.wav-o 'track.ogg' | Make ogg file from wav file | |
| disk space (See also fslint ) | ||
| • | ls-LSR | Show files by size, biggest last |
| • | du-s * | sort-k1, 1RN | head | Show top disk users in current dir. See also dutop |
| • | df-h | Show free space on mounted filesystems |
| • | df-i | Show free inodes on mounted filesystems |
| • | fdisk-l | Show disks partitions sizes and types (run as root) |
| • | rpm -q-a-qf '% 10 {SIZE} \ t% {NAME} \ n' | sort-k1, 1n | List all packages by installed size (Bytes) on rpm distros |
| • | dpkg -query-W-f = '$ {Installed-Size; 10} \ t $ {Package} \ n' | sort-k1, 1n | List all packages by installed size (KBytes) on deb distros |
| • | dd bs = 1 seek = 2TB if = / dev / null of = ext3.test | Create a large test file (taking no space). See also truncate |
| monitoring / debugging | ||
| • | tail-f / var / log / messages | Monitor messages in a log file |
| • | strace-c ls> / dev / null | Summarise / profile system calls made by command |
| • | strace-f-e open ls> / dev / null | List system calls made by command |
| • | ltrace-f-e getenv ls> / dev / null | List library calls made by command |
| • | lsof-p $ $ | List Paths That process id has open |
| • | lsof ~ | That list processes have specified path open |
| • | tcpdump not port 22 | Show network traffic except ssh. See also tcpdump_not_me |
| • | ps-e-o pid, args-forest | List processes in a hierarchy |
| • | ps-e-o PCPU, cpu, nice, state, cputime, args-sort PCPU | sed '/ ^ 0.0 / d' | List processes by% cpu usage |
| • | ps-e-orss =, args = | sort-b-k1, 1n | pr-TW $ COLUMNS | List processes by mem usage. See also ps_mem.py |
| • | ps-C firefox-bin-L-o pid, tid, PCPU, were | List all threads for a process particolare |
| • | ps-p 1.2 | List info for particolare process IDs |
| • | last reboot | Show system reboot history |
| • | free-m | Show amount of (Remaining) RAM (-m displays in MB) |
| • | watch-n.1 'cat / proc / interrupts' | Watch Continuously changeable date |
| system information (see also sysinfo ) ('#' means-root access is required) | ||
| • | uname-a | Show kernel version and system architecture |
| • | head-n1 / etc / issue | Show name and version of distribution |
| • | cat / proc / partitions | Show all partitions registered on the system |
| • | MemTotal grep / proc / meminfo | Show RAM total seen 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) |
| # | dmidecode-q | less | Display SMBIOS / DMI information |
| # | smartctl-A / dev / sda | grep Power_On_Hours | How long has this disk (system) Been powered on in total |
| # | hdparm-i / dev / sda | Show info about disk sda |
| # | hdparm-tT / dev / sda | Do a read speed test on disk sda |
| # | badblocks-s / dev / sda | Test for unreadable blocks on disk sda |
| interactive (see also linux keyboard shortcuts) | ||
| • | readline | Line editor used by bash, python, bc, gnuplot, ... |
| • | Screen | Virtual terminals with detach capability, ... |
| • | mc | Powerful File Manager That can browse rpm, tar, ftp, ssh, ... |
| • | gnuplot | Interactive / scriptable graphing |
| • | links | Web browser |
| • | xdg-open http://www.pixelbeat.org/ | open a file or url with the registered desktop application |
| miscellaneous | ||
| • | alias hd = 'od-Ax-tx1z-v' | Handy hexdump. (Eg usage: • hd / proc / self / cmdline | less) |
| • | alias realpath = 'readlink-f' | Canonicalize path. (Eg usage: • realpath ~ / .. / $ USER) |
| • | set | grep $ USER | Search current environment |
| touch-c-t 0304050607 file | Set file timestamp (YYMMDDhhmm) | |
| • | python-c "import SimpleHTTPServer as ws; ws.test ()" | Serve current directory tree at http:// $ HOSTNAME: 8000 / |















May 27, 2010 at 10:16
About Linux commands, I see that you speak of above wget and parameters needed to do mirroring. To me everything is much better if you usani the following parameters:
wget -m -p -k --user-agent="" http://www.domain.extHello