April 26, 2005

Top 10 Linux console applications

Author: Michael M. Murphree

System administrators regularly work from the command line, but there's more to the console than managing servers. You can do most desktop work from the console, and generally faster than you can accomplish work from a graphical user interface. You can even have a basic office suite, complete with a word processor, spreadsheet, and presentation program, all in the absence of a GUI. Here are 10 applications to try.

Screen

It may seem like cheating, but think of GNU Screen as a window manager for the console. I found it to be much more usable than the multiple TTYs normally spawned by Linux. Unlike the default virtual terminals, Screen allows you to begin with one shell or application and spawn new ones on demand. You can also start with a dozen or more predetermined applications as soon as you log in. Screen allows you to page between running shells and applications, cut and paste between them, log input and output from any session, and share consoles with other users or groups. When running locally, Screen can password-lock your console. Best of all, you can detach a shell or application running from Screen. As an example, using Screen I start with a top session. I then press Ctrl-a and then the d key. This detaches the top session. If I log out, then log in again a day later, my top session is still running. A simple screen -r is all it takes for me to bring it back to the foreground. That alone is reason enough for me to use Screen -- particularly for systems that I administer remotely.

Pine

Long before Outlook and Evolution there was Pine for handling email. This console-based email application was conceived in 1989 at the University of Washington in Seattle. It now supports LDAP searches and address books, exhaustive mail filtering and highlighting (with color coding), multiple POP and IMAP accounts, spellcheck, and MIME attachments through configuration of helper applications. The keystroke commands, though simple, may seem daunting at first, but the speed of the application makes mastering them well worth the effort. One of my favorite features is the default signature: "This message was written with Pine. Yes, that Pine."

Lynx

Lynx is a straightforward text Web browser that many Linux distributions include by default. It supports bookmarks, image viewing through helper applications, and color highlighting of URL links. Although Lynx does not display frames, it will allow you to select one frame from a frameset for viewing. I use Lynx in an xterm on my desktop for reading news and other interesting articles for which I don't have the patience to put up with popup ads, bad graphics, and
moving advertisements.

Zed

I must admit that for console or xterm text processing I much prefer vi or Vim to any other CLI editor. In fact, I prefer Vim to many GUI-based word processors, and just as many people prefer Emacs. If, however, you would like something simpler, Zed is not a bad choice. It is small, fast, and provides many functions. Zed supports search and replace, multiple windows, macro programming, word wrap, text justification, and more. Although the default key sequences seem obscure, Zed provides for easy configuration of both menus and key sequences. I'd suggest it if you'd rather not learn vi or Emacs.

Oleo

I was frustrated with the Oleo spreadsheet application on more than one occasion. Some of that frustration was due to my own ignorance, as the key sequences are Emacs-based. As a Lotus, Excel, Gnumeric, and OpenOffice.org Calc user I had expected Oleo to be more intuitive, but I needed multiple sessions with the info file before I could use it proficiently. Even cell reference syntax was not what I had expected. As I became more familiar with it, however, I found a lot to recommend about this application. Oleo does not support the display of more than one file at a time, but Screen gives you a nice workaround for that limitation. It does support multiple windows of the same spreadsheet. It also supports macro programming, plotting through GNU plotutils (under X only) ASCII and PostScript output, and MySQL queries. A Motif GUI interface is available under X. Although it does not yet support most spreadsheet file formats, it works well on its own. If you are setting up a console office suite, it's an application that's well worth having.

TPP

The Text Presentation Tool (or Text PowerPoint) is an impressively flexible console-based application. It supports execution of external programs, background and text colors, ASCII text borders, and automatic page numbering and date display. Special effects such as fly in, fly out, slide in from right/left, and, to some extent, variable font sizes are also available. Each presentation comprises a plain ASCII text file consisting of text and simple commands. TPP also supports TeX conversion for printing. Even if you don't need it to round out your console office suite, you should try TPP as a means of annoying anyone who's ever sent you a 24MB PowerPoint file.

MySQL

MySQL ships with many versions and flavors of Linux. Although many X and HTML front ends are available for MySQL, it's just as easy to create and maintain a database from the command line. You can script commands and queries and call them with mysql < scriptname. This makes it easy to automate operations such as data imports and report generation. MySQL supports multilevel queries, output sorting and grouping, arithmetic operations, and much more. If you haven't used MySQL, you've overlooked one of the most powerful applications on your system.

Midnight Commander

Midnight Commander is a file manager and FTP client that looks and works much like Norton Commander for DOS. The two-panel interface can display two local directories, a local and remote FTP directory, a directory and file specifications, or a directory and file preview. File attributes and permissions are color-coded, and you can change them through Midnight Commander. In addition, MC supports file undeletion on ext2 filesystems. Although MC is not my personal favorite for file management at the command line interface, it is probably the most powerful.

ZGV

ZGV is an image viewer. Strictly speaking it is not console-based, as attempts to run it through an SSH session will display only on the remote system. In addition it requires the SVGA libraries, and does not work well with Screen, as it tends to take over the entire shell. As a standalone application, however, it is handy and powerful. It supports auto zoom, thumbnails, and slideshows. For work in the CLI it's possibly the best image viewer you can find. When exiting ZGV, however, the virtual terminal will sometimes stop responding. In these cases I've been able to fix the shell by switching to another virtual terminal and back.

Nethack

Nethack is a single-player multi-level dungeon exploration game. You must make your way through an enormous maze of enemies and monsters to find the Amulet of Yendor. It's possible to play for several hours a day for at least a week without completing this quest. You arrive in the dungeon as one of 13 characters with a faithful animal companion that will help you fight orcs, were-rats, and hundreds of other creatures. If you lose your companion, it may become feral and kill you later. Although there are hundreds of dungeon-crawl adventure games, Nethack is one of the best. It is possibly the most fun you can have without a graphics card, and its use of the vi key bindings make it an excellent training resource for vi and Vim.

Other programs

These applications are enough to get you started on your CLI-based system. If you enjoy the experience, here are a few more applications to try:

X-Chat-text -- IRC client
Tethereral -- front end for TCPdump
GNU Chess -- a chess game
Vlock -- a clock for the CLI
Halibut -- converts text to manpage, PDF, PostScript, and other formats
Cmatrix -- a screen saver
vifm -- my favorite file manager
ncftp -- FTP client
antiword -- converts Word .DOC files to text

Click Here!