Over the last 15 years, UNIX has quietly evolved into something like UNIX but not UNIX.

In fact, one of the reasons I'm interested in Ancient UNIX is to remind me of and teach me the original UNIX philosophy, which among other things says:

This is the Unix philosophy: Write programs that do one thing and do it well. Write programs to work together. Write programs to handle text streams, because that is a universal interface.

The above is a summary attributed to Doug McIlroy, but there are books devoted to the philosophy.

Read on for more...

I still find the tenants of the original UNIX philosophy incredibly useful and powerful. All the more so because I am not a developer of graphical applications. And I will make a statement that I am sure will raise the hackles on a boatload of Linux lovers:

Linux and the movement of UNIX to the mainstream has killed much of the original intent of the UNIX operating system, the UNIX philosophy.

Today, the masses have basically forgotten the command line, which in my opinion, provided much of UNIX's power. Most would never think of installing their favorite Linux system without Gnome or KDE, both interesting, though severely bloated forms of the X desktop. The Linux community generally believes that it competes with Windows, and though I haven't asked them, I would guess this idea would appall Ken Thompson and Dennis Ritchie.

But the intent of this post is not to denigrate Windows or Linux (I am a Linux lover too, and use it every day), but to talk a little more about UNIX roots and tools, and maybe getting back to them.

I find that I spend much more time in the shell than I do on the desktop. I generally do not use UNIX to do most of my web browsing, I have a Mac running OS X for that (and that's a different story), but I do a lot of text filtering and transformation, file transfer, C programming and shell scripting there. Even the UNIX command line tools have become bloated. Where 20 years ago we had a core of tools that performed a huge amount of processing (sh, sed, awk, tr, lex, yacc and the like), we now have enormously complex, bloated and difficult to use "improvements" like perl, tcl, bash, and others. Do we need them? Likely not.

Relearning the old tools is a joy, and I find that for the most part, I can get things done faster and more elegantly than with the monstrous new tools.

I'm starting with awk, the original UNIX text processing language. I have the original awk book and the update that describes nawk, which I believe was relesed along with System V.

As a bonus, I found and downloaded several different tutorials for several different tools. The first one I'll upload is a ~60 page awk tutorial. Find it in the Documents tab of this group.

More will be coming, along with some fun and/or useful scripts.