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.
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0 ratings0% found this document useful (0 votes)
89 views
More Linux Commands - A Practical Reference
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.
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 3
Command Description
• 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