This document provides a list of Linux commands and their descriptions, organized into categories including system information, administration, monitoring, networking, multimedia, development, and Bash-specific commands. It also includes tips for better default settings, useful functions, extended attributes, multicore processing, and more.
This document provides a list of Linux commands and their descriptions, organized into categories including system information, administration, monitoring, networking, multimedia, development, and Bash-specific commands. It also includes tips for better default settings, useful functions, extended attributes, multicore processing, and more.
• grep . /proc/sys/net/ipv4/* List the contents of flag files
• set | grep $USER Search current environment • tr '\0' '\n' < /proc/$$/environ Display the startup environment for any process • echo $PATH | tr : '\n' Display the $PATH one per line • kill -0 $$ && echo process exists and can accept signals Check for the existence of a process (pid) • find /etc -readable | xargs less -K -p'*ntp' -j $((${LINES:-25}/2)) Search paths and data with full context. Use n to iterate • namei -l ~/.ssh Output attributes for all directories leading to a file name Low impact admin apt-get install "package" -o Acquire::http::Dl-Limit=42 \ # Rate limit apt-get to 42KB/s -o Acquire::Queue-mode=access echo 'wget url' | at 01:00 Download url at 1AM to current dir # apache2ctl configtest && apache2ctl graceful Restart apache if config is OK • nice openssl speed sha1 Run a low priority command (openssl benchmark) • chrt -i 0 openssl speed sha1 Run a low priority command (more effective than nice) • renice 19 -p $$; ionice -c3 -p $$ Make shell (script) low priority. Use for non interactive tasks Interactive monitoring • watch -t -n1 uptime Clock with system load • htop -d 5 Better top (scrollable, tree view, lsof/strace integration, ...) • iotop What's doing I/O # watch -d -n30 "nice ps_mem.py | tail -n $((${LINES:-12}-2))" What's using RAM # iftop What's using the network. See also iptraf # mtr www.pixelbeat.org ping and traceroute combined Useful utilities • pv < /dev/zero > /dev/null Progress Viewer for data copying from files and pipes • wkhtml2pdf http://.../linux_commands.html linux_commands.pdf Make a pdf of a web page • timeout 1 sleep inf run a command with bounded time. See also timeout Networking • python -m SimpleHTTPServer Serve current directory tree at http://$HOSTNAME:8000/ openssl s_client -connect www.google.com:443 </dev/null 2>&0 | • Display the date range for a site's certs openssl x509 -dates -noout • curl -I www.pixelbeat.org Display the server headers for a web site # lsof -i tcp:80 What's using port 80 # httpd -S Display a list of apache virtual hosts • vim scp://user@remote//path/to/file Edit remote file using local vim. Good for high latency links • curl s http://www pixelbeat org/pixelbeat asc | gpg import Import a gpg key from the web • echo "DISPLAY=$DISPLAY xmessage cooker" | at "NOW +30min" Popup reminder • notify-send "subject" "message" Display a gnome popup notification echo "mail -s 'go home' P@draigBrady.com < /dev/null" | at 17:30 Email reminder uuencode file name | mail -s subject P@draigBrady.com Send a file via email ansi2html.sh | mail -a "Content-Type: text/html" P@draigBrady.com Send/Generate HTML email Better default settings (useful in your .bashrc) # tail -s.1 -f /var/log/messages Display file additions more responsively • seq 100 | tail -n $((${LINES:-12}-2)) Display as many lines as possible without scrolling # tcpdump -s0 Capture full network packets Useful functions/aliases (useful in your .bashrc) • md () { mkdir -p "$1" && cd "$1"; } Change to a new directory • strerror() { python -c "import os; print os.strerror($1)"; } Display the meaning of an errno • plot() { { echo 'plot "-"' "$@"; cat; } | gnuplot -persist; } Plot stdin. (e.g: • seq 1000 | sed 's/.*/s(&)/' | bc -l | plot) • hili() { e="$1"; shift; grep --col=always -Eih "$e|$" "$@"; } highlight occurences of expr. (e.g: • env | hili $USER) • alias hd='od -Ax -tx1z -v' Hexdump. (usage e.g.: • hd /proc/self/cmdline | less) • alias realpath='readlink -f' Canonicalize path. (usage e.g.: • realpath ~/../$USER) • ord() { printf "0x%x\n" "'$1"; } shell version of the ord() function • chr() { printf $(printf '\\%03o\\n' "$1"); } shell version of the chr() function Multimedia • DISPLAY=:0.0 import -window root orig.png Take a (remote) screenshot • convert -filter catrom -resize '600x>' orig.png 600px_wide.png Shrink to width, computer gen images or screenshots mplayer -ao pcm -vo null -vc dummy /tmp/Flash* Extract audio from flash video to audiodump.wav ffmpeg -i filename.avi Display info about multimedia file • ffmpeg -f x11grab -s xga -r 25 -i :0 -sameq demo.mpg Capture video of an X display DVD for i in $(seq 9); do ffmpeg -i $i.avi -target pal-dvd $i.mpg; done Convert video to the correct encoding and aspect for DVD dvdauthor -odvd -t -v "pal,4:3,720xfull" *.mpg;dvdauthor -odvd -T Build DVD file system. Use 16:9 for widescreen input growisofs -dvd-compat -Z /dev/dvd -dvd-video dvd Burn DVD file system to disc Unicode • python -c "import unicodedata as u; print u.name(unichr(0x2028))" Lookup a unicode character • uconv -f utf8 -t utf8 -x nfc Normalize combining characters • printf '\300\200' | iconv -futf8 -tutf8 >/dev/null Validate UTF-8 • printf 'ŨTF8\n' | LANG=C grep --color=always '[^ -~]\+' Highlight non printable ASCII chars in UTF-8 • fc-match -s "sans:lang=zh" List font match order for language and style Development • gcc -march=native -E -v -</dev/null 2>&1|sed -n 's/.*-mar/-mar/p' Show autodetected gcc tuning params. See also gcccpuopt gdb -tui Debug showing source code context in separate windows udev • udevadm info -a -p $(udevadm info -q path -n /dev/input/mouse0) List udev attributes of a device, for matching rules etc. • udevadm test /sys/class/input/mouse0 See how udev rules are applied for a device # udevadm control --reload-rules Reload udev rules after modification Extended Attributes (Note you may need to (re)mount with "acl" or "user_xattr" options) • getfacl . Show ACLs for file • setfacl -m u:nobody:r . Allow a specific user to read file • setfacl -x u:nobody . Delete a specific user's rights to file setfacl --default -m group:users:rw- dir/ Set umask for a for a specific dir getcap file Show capabilities for a program setcap cap_net_raw+ep your_gtk_prog Allow gtk program raw access to network • stat -c%C . Show SELinux context for file chcon ... file Set SELinux context for file (see also restorecon) • getfattr -m- -d . Show all extended attributes (includes selinux,acls,...) • setfattr -n "user.foo" -v "bar" . Set arbitrary user attributes BASH specific • echo 123 | tee >(tr 1 a) | tr 1 b Split data to 2 commands (using process substitution) meld local_file <(ssh host cat remote_file) Compare a local and remote file (using process substitution) Multicore • taskset -c 0 nproc Restrict a command to certain processors • find -type f -print0 | xargs -r0 -P$(nproc) -n10 md5sum Process files in parallel over available processors sort -m <(sort data1) <(sort data2) >data.sorted Sort separate data files over 2 processors