For those not accustomed to it, the command line can be a confusing and frustrating place full of arcane notations and obscure incantations. For the cognoscenti, however, it’s the route to extremely flexible and efficient workflows. 🙂
If you spend much of your time working with text or just want to get rid of the clutter in your working environment, the command line can become so compelling that it’s annoying to have to leave it to use graphical applications for tasks like email and time management.
We’re going to have a look at a selection of productivity applications that you can use from the command line to communicate and organize your day. We’re going to assume that you’ll be connecting to Linux servers, or using Linux or other Unix-based systems like OS X and the BSDs. If you’re a Windows user, then you can probably get these applications to work, but it’ll take some hoop jumping.
Most people who regularly use the command line will be familiar with screen, but in case you aren’t, Screen is a window manager for terminals. It allows you to split a physical terminal into multiple windows and run separate processes in each of them. It’s great if you want to connect to multiple SSH sessions from the same terminal, or run a bunch of the apps we’re about that talk about without having to switch windows all the time.
Planning And Note Taking
Outliner tools are an efficient way of organizing tasks and notes. Vim-Voom is a two-pane outliner plugin for the Vim text editor. It supports a variety of markup languages, including markdown and reStructuredText.
Org Mode is a hugely functional outliner extension for Emacs. There’s no way we could cover all of its features here, but among the tasks it can be used for are planning, time tracking, agendas, and tables.
As an aside, we know that Emacs is capable of doing almost everything the other applications mentioned here do, but in the interests of the “do one thing well” philosophy, as well as being editor agnostic, we won’t point that out in every section. 🙂
Todo.txt is a simple todo application developed by Gina Trapani, the founder of Lifehacker. It stores todo lists as simple text files that can be edited by any text editor. It comes as a bash script for command line use, and also has iOS and Android varieties using DropBox to sync lists across devices.
There are many command line email clients, but Alpine is one of the best. It has a very rich set of keyboard commands and supports POP, IMAP, SMTP, and LDAP protocols. Alpine is easier for newcomers to get to grips with than some of the alternatives because it’s designed to be configured via the interface rather than by editing a configuration file.
If Alpine doesn’t tick your box, you should check out the venerable Mutt.
Pal is a simple but flexible application that allows for the display of calendars on the terminal with built-in notable occasions like public holidays and the ability to add personal events. It can also generate an HTML version of your calendar.
Gcalci is a terminal interface that can access and display Google Calendars.
Newsbeuter is billed as “the Mutt of RSS readers”. Whether you consider that a good thing or not, it’s definitely worth checking out. Newsbeuter does everything you might expect from a standalone RSS reader, including subscribing to RSS and Atom feeds, a query language for creating meta-feeds, and the ability to sync with Google Reader (which won’t be useful for very long, unfortunately — providing a perfect opportunity to try out readers where your data is kept safe and you aren’t at the whim of third-party service providers).
Newsbeuter can also handle podcast downloads, although you’ll need another application to play them.
What are your favorite tools? Feel free to share your favorite command line productivity apps in the comments below!