Unix and shell programming stuff

Here's a kitchen-sink collection of Unix-related stuff, including an Emacs section and some Procmail links. I've tried to only collect links of reasonable quality, but unfortunately, link rot in these circles is really bad. If you find any broken links here, please let me know -- mail me.

My private Procmail pages are not yet up; for now, have a look at the Procmail FAQ I maintain.


Referenced local pages

If you are primarily interested in pages made by yours truly, here's a listing of the pages I have in this directory:

Unix History

The Unix community has a rather strong interest in its own history. I have tried to gather some retro-Unix stuff and links to good stories here.

Shell programming

This is another piece that became so big that it had to be broken out into its own section.

Shell programming for newbies

I'm hoping to gather a good collection of shell programming pages here.

If I can find a good centralized links page, all the better. For now, this is mostly stuff I picked up on comp.unix.shell and might not even have checked out myself yet.

Very extensive link collection, haven't looked at it more closely yet.
(Thanks to Michael A. Powe for this one.)
Online forum, includes good newbie forums
Most of these links were snagged out of postings to comp.unix.shell by the people I've credited here.

If you have more and/or better links, I'd love to hear from you -- and please let me know if any of these links break, Unix shell programming pages seem to be very prone to link rot.

Unix books

Just a quick pointer to some classics.

The Unix Programming Environment, (Kernighan & Pike 1984)
Old but nevertheless good. An excellent primer on shell programming, but also includes a lot of stuff not related to shell programming, such as Make, Troff, and the Unix standard library (for C programmers etc).
The errata page has some helpful contributions by yours truly :-)
The Practice of Programming (Kernighan & Pike 1999)
Good programming habits; examples in C, Java, and Perl. Not particularly Unix-centric (actually I believe the authors use Plan 9) but very much on the right wavelength for anybody who likes Unix.
Mastering Regular Expressions (Friedl 1997)
Must read. Must. Read.
Advanced Programming in the Unix Environment (Stevens 1992)
C programming and the library; explains and relates to various standards such as POSIX, XPG3 (now XPG4, of course), SVID, etc. (Somewhat ignorant of Linux, but that's probably only for the better.)
Unix System Administration Handbook (3rd ed.; Nemeth, Snyder, Seebass & Hein et al. 2001
I don't yet own the 3rd edition, but I own a copy of the 1st and 2nd eds.
The new edition now also covers Red Hat and FreeBSD, where the previous edition was predominantly "expensive" vendors (HP-UX, Irix, OSF/1, Solaris [now free, of course], SunOS, and BSDI).

GNU Utilities

A constant need for many is to find Unix shell utilities which do not stink. Frequently user-level software on many platforms is written to barely conform to spec, so that the programmers can spend more time to introduce new and better incompabilities with the competition in their kernel-level code.

I have found the GNU utilities to generally be robust, user-friendly (in the Unix sense, i.e. if you know what you're doing, it's doable), mostly devoid of unnecessary restrictions (both in terms of who's allowed to use and copy them and in what input they will accept) and often simply much better than what Sun, HP, Digital, NetBSD (which is otherwise very nice) and generally everyone else would want you to have. (Linux comes with GNU utilities preinstalled by default.)

There's a sort of web page at http://www.gnu.org/ but it doesn't contain very much about the GNU packages I'd like to see introductions to. Perhaps you should just cruise around in ftp://prep.ai.mit.edu/pub/gnu/ (or one of the many many mirrors worldwide) and see what you find.

As for the standard Unix command-line tools, I have local copies of some distribution files (these versions are growing oldish, though) for the fileutils (README and NEWS), sh-utils (README and NEWS), textutils (README and NEWS), findutils (README and NEWS), and grep (README and NEWS) stored locally.

If you're at all interested in Unix shell programming, you want these.

Of course, GNU's Not Unix and Unix is not GNU, but they obviously have something in common. (See also Emacs and Perl.)


Procmail is a good reason in itself to switch to Unix if you haven't already! This is a tool to help you stay on top of your mail traffic -- filter out unwanted mail before it hits your mailbox, sorting stuff from mailing lists into its own folder automatically, implement an ftp-by-mail server ...

If you download this, make sure to get version 3.13.1


Of course, Emacs isn't Unix, and Unix isn't Emacs, but people who recognize quality tend to like both. (See also Perl.)

A great part of this section is just stuff I cut && pasted out of the main section, because it started to look a bit like "Emacs and what else".

Note that the Emacs FAQ is nowadays included in the distribution. For newish GNU Emacsen, press C-h F to view the FAQ in a buffer.

Jari Aalto's huge list of Emacs Elisp references -- including a lot of pointers to downloadable add-in packages.
Augh. This used to be a useful site. Then it was revamped. Then it was down. Then it sucked even worse after having been revamped again. Then it has been oscillating between "down" and "useless" and "revamped but still useless" with some all too short deviations from this pattern.
Occasionally ftp://ftp.emacs.org/ and / or http://ftp.emacs.org/ has contained useful stuff, but don't count on that, either.
Mirror of the LCD archive
Local European mirror, of course, at Funet, of course
Here's the searchable version of the LCD archive.
Emacs implementations
Of course, there's only one True GNU!
Craig Finseth's book
The Craft of Text Editing: Emacs for the Modern World is now available online (exclusively)
-- documentation and all!
(What kind of documentation, I hear you ask ...)
Other gripes:
Still, it's better than not having a browser inside Emacs.
VM the mail reading package
My gripes: It's still a lot better than RMAIL, or than using something else than Emacs as your mail environment. And don't get me started about Gnus ...
Various useful VM links:
Trey Jackson's index of MIME tools for Emacs
The Church of Emac$
Noah F's Lisps (including some VM add-ons, too)

If you are looking for my Open Source spook.lines file, scroll down a screen or two.


Of course, Perl isn't Unix, and Unix isn't Perl, but people who recognize quality tend to like both. (See also Emacs.)

The purpose of most computer languages is to lengthen your resume by a word and a comma.

   -- Larry Wall

The WWW is shock full of Perl links. I get along fairly well with stuff directly or indirectly available from the following:

I'm not a very eager Perl links collector, though. YMMV.


It's screen for X. No, it's a multiplatform graphical screen. It's worth to kill for. But it's free. 'Nuff said. http://www.uk.research.att.com/vnc/

Here are some useful extras (some of them are also linked from the AT & T pages):

Open Source / Free Software

Of course, Open Source / Free Software isn't Unix, and Unix[tm] most definitely isn't Open Source / Free Software. But there are reasons why this is here nevertheless. (See also Emacs and Perl.)

This is really just a quick link collection in case you're trying to pick up on this topic.

If you find any material you think should be included here, perhaps you could submit it to dmoz.org instead.

A (meager, but still) contribution of mine is the subversive Open Sounce Conspiracy spook.lines file which you can download here. (The Emacs spookmime.el package by Noah Friedman is curiously not available from his collected works page but you can pick up a copy from the VM Add-Ons page.)


This is bound to grow out of proportion.
Libretto notes
In case you missed it earlier, I have written up some notes on installing Debian on a Libretto.
Attitude. Weirdness. At least Jamie works hard to deserve his fifteen minutes in the spotlight.
Free Unix OCR software
"Unix is the ultimate computer virus"
Ironically, the guy who coined the phrase "Unix is the ultimate computer virus" was rather critical of Unix and C. The guy is Richard P. Gabriel and the quotation is from his 1992 paper Lisp: Good News - Bad News - How to Win Big
... which brings us to the Unix Haters.
Don't be fooled by the silly name, this is not "Windoze r00lz so FOAD" lusers on a rampage. Some of the criticism is very insightful.
We Are Smart
(A-g-a-i-n, originally snatched from www.perl.com's What's New)
Of course, this contains a Useless Use of Test!
	if test -z `ps -fe | grep whom` 
		echo ^G 
	# Let's see for whom the bell tolls. 
Or is it Useless Use of Backticks? Anyhow, the way to code that is
	if ps -fe | grep whom; then ...
Oh! And another one:
	cat menu | grep shrimp
Yes -- this is the classic Useless Use of Cat but I shall leave fixing it as an exercise to the reader.
Perhaps we aren't so smart after all?
The Tao of Backup
... Slick design, if your browser can display it.
Dumbest Y2K Quotes Contest
(Ken the Cockroach, an animated GIF from a Y2K awareness ad campaign)
And here's a link to Tom Christiansen's article about the Y2K hype contest (recommended reading for IT managers)
How to print FrameMaker preformatted PostScript on A4 paper
This is one of the few things I (indirectly) found an answer to from http://www.askjeeves.com/ -- this is not an endorsement; I've failed to find more answers there than I care to remember.
This has nothing with Unix to do, of course, but it's information I could have killed for on more than one occasion.
http://www.math.auc.dk/~nwp/ps/fm4/ is the place to go. Bookmark, mail it to all your friends, send beer to the guy who made the page. (Bookmark the parent page also.) While you're frothing anyway, persuade a nearby mirror to mirror it, too!
Mysteriously, the FMLeve1 patch tip is also available from sites like http://java.sun.com/docs/a4.html and http://www-sop.inria.fr/koala/lehors/xpm.htm

If you sort of enjoyed these links, perhaps the misc section of my regular hotlist will be found to be entertaining.

Other programs

Some of these are programs I use. Others are programs I don't use. Some of these are programs I recommend. Others are programs I don't recommend. You were warned.
$Id: index.prep,v 1.79 2001/12/02 19:41:04 era Exp $