Skip to content
Feb 17 2012

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)

Get in touch

Email

skype twitter linkedin github amazon

Advert

Latest Articles

Building a url shortener in 10 mins
A 10 minute guide to building your own url shortener i.e. a service that lets you shorten a long url - http://pravin.insanitybegins.com to a url that takes up less number of characters - http://goo.gl/q3jEH
Going Text-mode
I spend a great deal of time working on the Terminal. Here, I list my must-have console applications for email, www browsing, and programming in Linux, Windows and Mac OSX.
Setting up Replica sets in MongoDB
A 5-minute guide to setting up replica sets on MongoDB. Covers downloading, installation on various flavours of linux, editing the config file and initiating replica sets!
Super quick Find & Replace
This article explores a number of ways of performing a find/replace and compares the various implementations for different sizes of the find/replace list and input text.
Set data structures & Implementation
Sets are an important concept and extremely useful in various computer science applications. We take a look at some of the ways a set data structure can be implemented.
Manage your wireless with nmcli
This article shows you how to use the command line tool nmcli to manage your wireless networks. If you prefer cli over gui, go ahead and take a look.
Binary heaps & Priority Queues
Heaps and Queues can be a powerful data structure. This article goes into the implementation of a binary heap and extends the data structure to act as a priority queue.
Recursive functions, Stack overflows and Python
Here we look at recursive functions in Python, and explore some ways of avoiding the maximum stack depth limit by using alternate functions like reduce().
Facebook puzzle - Find Sophie
Today we solve the FB engineering puzzle - Find Sophie. We start with a naive solution and improve the algorithm until we can pass the Facebook Puzzlebot. In closing, I leave you with open-ended questions on improving the algorithm further.
Palindromic sub-sequences in python
This bit of python code returns all palindromic subsequences in the input string. Nothing to see here, I was just having a meh moment.