Est. read time: 2 minutes | Last updated: July 17, 2024 by John Gentile


Development Tools

  • sed: a stream editor
  • ranger: console file manager with VI key bindings
  • The Tao of tmux
  • Facebook PathPicker is a useful Python/shell parser that, when piped in some input (i.e. output of git commands, grep results, searches, etc.), provides a simple UI that allows you to choose certain files to open in your preferred editor.
  • The Silver Searcher: very, very fast code searching tool similar to ack and grep. Used like $ ag my_code ./my_dir
  • xclip reads from stdin, or from one or more files, and makes data selection available for use in X applications. Also allows current X clipboard to be used in terminal for pasting.

pushd/popd for faster Terminal Navigation

Instead of using the basic cd commands to switch around directories, using the directory stack to push ($ pushd /my/dir/) and pop ($ popd) directories can be a faster method for navigating a filesystem, especially if directory accesses are commonly used in a FIFO like manner. Running $ dirs -v can show the current directory stack and allows bringing certain directories to the front of the stack (i.e. $ pushd +2 brings the 3rd directory on the stack to the front of the 0-based FIFO). Assigning aliases in your .bashrc to pushd/popd/dirs further increases the speed of operation.

Vi(m) Key Bindings for GNU Readline (Bash & others)

If the default Emacs key bindings for your terminal are boring, or you’re a fan of Vi key navigation and editing, you can set GNU readline (the process feeding things like the bash terminal, SQL prompts, etc.) to have Vi keybindings by making some changes to your ~/.inputrc config file. For example, take a look at my .inputrc. A valuable cheatsheet for this mode can be found here.

Session Sharing

  • asciinema FOSS solution that provides a lightweight, text-based approach to recording and sharing terminal sessions.
  • Floobits real-time collaborative editing for terminals and other IDEs that support the plugin. Also can integrate video chats with Google+ Hangouts



  • Manually map an alias/hostname to an IP address by adding to /etc/hosts file, like:    mylinuxbox

File Management

File/Directory Removal

  • rm -r dir/ removes the directory (and all files and subdirectories within) dir
  • rm -r dir/* removes all files and subdirectories in dir

Command Line Text Processing