Software for a command-line world

Author: Tim Chase
Date: 2009/01/14
license:CC-BY-SA
url:http://tim.thechases.com/bvi/console.html

Below are a list of programs that can all be used over an SSH connection with no need for an X connection.

Email

  • mail [#] (command-line, uses local mailboxes)
  • mutt (full-screen, uses local mailboxes, POP3, or IMAP)
  • elm (full-screen, uses local mailboxes, may support POP3/IMAP)
  • mh/nmh (mail-handler/new-mail-handler, command-line, uses maildir, may support POP3/IMAP)
  • pine/alpine (full-screen, uses local mailboxes, POP3, or IMAP)
  • and many others

RSS

Web

  • lynx (the classic full-screen text-browser)
  • links/links2 (a full-screen text-browser with more visual layout engine)
  • elinks (a full-screen text-browser with more visual layout engine)
  • w3m
  • edbrowse (it's an editor, it's a browser, it's command-line)

Text Editing

  • vi/vim (the classic full-screen text-editor)
  • emacs (another popular and extensible choice in full-screen text-editors)
  • ed (the classic command-line text editor)
  • nano (a simple full-screen editor)
  • pico (a simple full-screen editor)
  • edbrowse (it's like ed on steroids)
  • and countless others

these can be used in concert with various markup syntax such as Markdown, HTML, DocBook, LaTeX, etc to produce publishable documents; you can use packages like antiword or wordview ("wv") to convert .DOC files to a usable format.

System Message: WARNING/2 (data/software-for-a-command-line-wolrd.txt, line 59)

Block quote ends without a blank line; unexpected unindent.

Spreadsheet/math/calculator:

  • Spreadsheet:

    o sc (a simple full-screen spreadsheet with vi-like keybindings) o slsc (based on sc) o oleo (a simple full-screen spreadsheet with a more Emacs-like feel)

  • Math:

    o Octave o R o scilab

  • Graphing:

    o gnuplot o graphviz

  • Calculator

    o bc (a simple command-line calculator) o Python (the full power of Python, at a command-line)

Calendar

  • calendar (show events on given days)
  • remind (like the previous calendar program on steroids)
  • cal (display a calendar)
  • pcal (good for printing)
  • cron (for scheduling repeated tasks)
  • at (for scheduling a single job sometime in the future)
  • mencal and mencal2 (menstruation calendars)

To-do/time management

devtodo TimeTracker (a simple command-line time-tracker in the spirit of many VCS tools, written by yours-truely in response to this post, and somewhat documented here)

Music/audio

  • Playback

    o mpg321 o mpg123 o ogg123 o and many others

  • Editing/recording

    o sox o ecasound

  • Volume control

    o aumix

Chat

  • Finch (a console version of Gaim/Pidgin)
  • centericq (support for ICQ, Yahoo!, AIM, IRC, MSN, Gadu-Gadu and Jabber protocols)
  • naim (support for AIM, ICQ, IRC, and the lily CMC protocols)
  • irssi (popular IRC client)
  • gtmess (MSN client)

Database

  • psql interface to PostgreSQL
  • mysql interface to MySQL
  • sqlite interface to the sqlite database
  • all the major databases have command-line clients

Filesystem

  • Midnight Commander (mc)

Version control

I currently use Mercurial, Bazaar, Subversion and RCS depending on the project context

  • Distributed VCS o mercurial (fast, powerful, predictable, and mostly written in Python) o bazaar (fast, powerful, predictable, and purely written in Python) o git (a fast, powerful patchwork of scripts and commands) o darcs (slower, and less popular)
  • Centralized VCS o subversion (removes some of the annoyances of CVS and more extensible) o cvs (the classic, rapidly being replaced by Subversion) o rcs (not bad for one developer and one text file, but doesn't scale nicely)

Games

  • the bsdgames package in Debian provides several (I'm a sucker for cribbage)
  • the frotz package gives access to most text-adventures
  • nethack
  • and oodles of other games

Torrents

rtorrent

Admin

  • top, ps, kill, who, last
  • ping, traceroute, dig, ifconfig, ip, netstat, nslookup
  • openssl, ssh, sftp, scp, rsync
  • iotop an I/O monitor like "top"

I also find the "screen" program vital to being productive, as I can do many, many things all at the same time, each in their own window. It also allows me to disconnect and then reconnect from another machine later, resuming where I left off.

Creative Commons License This work is licensed under a Creative Commons Attribution-Share Alike 3.0 United States License. ©2008, Tim Chase Last modified: $Date: 2009/01/14 21:34:38 $