Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
0% found this document useful (0 votes)
75 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.
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
75 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.
Copyright
© © All Rights Reserved
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

You might also like