Hello, I am an Engineering Manager at Facebook with 13+ years in Ad Technology, Natural Language Processing and Data mining. (Learn More)
by Pravin Paratey

Going Text-mode

For many years now, I have been using the console to do most of my tasks. In this post, I will enumerate all the tools and applications I use to make my life easier on the terminal.

Terminal Emulator

The most important application, when going text-mode is the terminal emulator. This is where I spend most of my time and choosing the right one makes the experience so much smoother.

On any platform, I look for

  1. Split Windows - This is massively important to me as I work on multiple remote servers and I need to see activity on all of them simultaneously. Using keyboard shortcuts lets me navigate to the pane I am interested in, maximise it, work and then restore it back to its original size.
  2. Keyboard shortcuts - Without keyboard shortcuts to navigate between panes and maximise them, any terminal emulator is, quite frankly, useless.
  3. Transparency support - Another important factor. Most people don’t realise that setting the transparency to something between 80-90% means not only can you work comfortably in the current window, but you can see what’s happening under it as well! I usually have 2 iTerms/Terminators on top of each other. The one in the background has its panes constantly spewing out status updates, while the one on top is where I code.
  4. 256 colours - Mesa like pretty colours. You can enable 256 colour support in vim by adding set t_Co=256 to your .vimrc.

On a Mac

When I am on a Mac, nothing quite beats iTerm. Although the terminal application in Mac OS Lion has improved a lot since Snow Leopard, it’s still nowhere close to iTerm.

iTerm

On Linux

I use Terminator which can be installed by issuing a sudo apt-get install terminator on Debian-derived systems. It has most of the features of iTerm, including tabbed and split-screen windows and customizable keyboard shortcuts.

On Windows

When I am on Windows, I use a combination of Cygwin and Putty (with Paegent). The thing I miss the most is the ability to split terminals like iTerm or Terminator. I get around it by tiling windows but it’s still not the same thing.

Editor

Vim wins :-).

iTerm

Web Browser

I use either w3m or lynx although I am a little partial to the latter as I started using it in 1997.

w3m Web browser

Email client

While mutt is more powerful, the simplicity of alpine and the fact that it is easy to set up multiple Gmail accounts without jumping though the hoops of fetchmail and sendmail means I use alpine more often. I do miss mutt though and sometimes sneak in some time with it.

iTerm

Notes

Use ssh-agent to save your private keys

ssh-agent lets you save your password once per session. This is really handy if you have to constantly ssh into multiple servers or pull/push git/hg repositories. To use it, first run

pravin@pravin-pc:~$ ssh-agent 
SSH_AUTH_SOCK=/tmp/ssh-bLAqHxf21857/agent.21857; export SSH_AUTH_SOCK;
SSH_AGENT_PID=21858; export SSH_AGENT_PID;
echo Agent pid 21858;

This done, add your ssh keys by running this command once for each key

pravin@pravin-pc:~$ ssh-add 
Enter passphrase for /home/pravin/.ssh/id_rsa: 
Identity added: /home/pravin/.ssh/id_rsa (/home/pravin/.ssh/id_rsa)