Essential CLI Software For Linux

I wanted to create a list of some of the command line software I depend on having available on computers I use. Since the computers I use the most run the Gentoo Linux distribution, the programs listed here are known to run on Linux. With the exception of tmux, the programs listed below also have versions available for other operating systems, like Windows.

1. tmux

A terminal multiplexer, gives you the ability to run many different programs at the same time in a single terminal window. Sessions, windows and panes allow programs to continue running even as you detach and reattach to a multiplexed terminal from elsewhere. It is hard for me to describe in words the productivity increase that comes from being able to do many things at once in a single terminal without having to reach for a mouse. Prior to adopting use of tmux in 2013 I was a long time user of GNU Screen. Terminal multiplexers are the one class of program for which I have yet to find any reasonable equivalent to on the Windows platform.

tmux in use

In the image above, tmux, as indicated by the blue bar, is running eight different terminals in a single session called Central. Three of the terminal windows have unseen activity (blue on white), the terminal in window 3 is active (red on blue) and running Vim where I am typing this post, and the remaining four terminals have not changed since they have last been viewed.

2. vim

Vim is a programmer class text editor, useful for any editing job from composing email to editing weblog posts such as this as seen in the image above. Vim is not a word processor and its multiple modes of operation can be intimidating for beginners. Like any good tool, Vim must be used and learned over time to fully appreciate its worth. Many find the power of Vim, its pervasive presence on Unix-like platforms and extensibility worth the price of admission.

vim in use

Using Vim in the image above to edit the Vim configuration file.

3. ssh

Secure Shell (ssh) provides remote command line login, remote command execution, and data communication between two computers over an encrypted network protocol. It also allows secured tunneling of otherwise insecure network protocols.

ssh in use

With a key agent and a single command I jump from one machine to another via ssh in the image above.

4. mutt

Mutt has been my text based, keyboard controlled, threaded and highly customizable email client of choice for the last fourteen years or so. Fast, reliable and supporting encryption, signing, attachments and all the mail protocols I have ever needed.

mutt in use

In the image above you have a quick view of the chaos that is my IMAP in box on my local mail server.

5. irssi

Irssi is a terminal based Internet Relay Chat (IRC) client. I have found it both easy to use, powerful and extensible. There has been an effort of late to make it easier for contributors to become involved and continues to see active development. It satisfies all my multi-user and multi-channel chat needs, and is automation friendly.

irssi in use

Irssi in tmux and the thirteen IRC channels I am joined to currently. Channel 7 #nmap discussion visible.

I hope that you found some of the information above interesting, and perhaps like me, one day you too will believe their is a lot of work that can be accomplished more efficiently when one does not have to constantly pull your hand from the keyboard to grab a mouse.