Hidden Features of Linux

To get the ball going, I find screen to be essential:

When screen is called, it creates a single window with a shell in it (or the specified command) and then gets out of your way so that you can use the program as you normally would. Then, at any time, you can create new (full-screen) windows with other programs in them (including more shells), kill the current window, view a list of the active windows, turn output logging on and off, copy text between windows, view the scrollback history, switch between windows, etc. All windows run their programs completely independent of each other. Programs continue to run when their window is currently not visible and even when the whole screen session is detached from the users terminal.


Maybe I don't use these every day, but I use them frequently:

  • strace Check out what files are loaded by the process.
  • htop A nicer top.
  • mtr ping + traceroute combined
  • lynx/links/w3m In case you need console browsing
  • ettercap Great network sniffer (i prefer it over wireshark)
  • scripting bash Every *nix admin should know this.
  • A programming language. For the more complex things, stay away from bash scripting and use something like python/perl/ruby/tcl/... (I use Lisp)
  • Midnight Commander can be great for people who liked norton commander.
  • irssi You never know when you just want to go ask something on IRC.
  • wget / curl Download stuff from the command line.
  • scp Copy stuff over ssh
  • lftp / ncftp Good (scriptable) console FTP clients.
  • iotop Check what's stressing your disks
  • nmap good port scanner