Unlike most operating systems, UNIX does not require its users to accept any particular user interface. Most UNIX vendors supply the Bourne shell (sh) and the C shell (sh) as a matter of course. More advanced vendors also supply the Korn shell (ksh).
This is by no means the end of the list, however. Many other shells have been written, and several are available on FTP archives. Let's give them a look...
The AdventureShell (ash) is a true shell game. Specifically, it is a fun, if rather primitive, exercise in making UNIX look like a D&D game. ash is implemented by a small set of Bourne shell and C code, and admits to being buggy and incomplete. Nonetheless, it contains some interesting ideas, and could be cleaned up and/or extended quite trivially. You can find copies in assorted USENET archives, including adventureShell.gz in ftp://toklab.ics.osaka-u.ac.jp/net/misc/v01/
bash is the GNU Project's entry into the shell game. You can find it, along with many other GNU tools, in ftp://prep.ai.mit.edu/pub/gnu/ and on many other GNU archives. As described in the README:
Bash is the GNU Project's Bourne Again SHell, an interactive shell with Bourne shell syntax; but also with interactive command line editing, job control on architectures that support it, Csh-like history features and brace expansion, and a slew of other stuff.
There is also a "restricted" version (rbash), which may be useful in situations where untrusted users must be given severely limited access to a system. The restricted shell makes the PATH and SHELL variables read-only, disallows changing directories and running programs whose names contain slashes, etc.
The Extensible Shell (es) looks a lot like the Plan-9 shell (rc; see below). Underneath the hood, however, it is radically different. In a fundamental departure from conventional shells, es allows virtually the entire user interface to be rewritten. You can, for instance, modify pipes to do command timing, simply by editing the shell script that supports the pipe symbol.
You can find es in ftp://ftp.white.toronto.edu/pub/es/. There is also a mailing list for es enthusiasts. It is a useful support network for newbies, but it can also get fairly deep into language theory on occasion. Interested readers may also wish to look up my introductory article "Elegant Simplicity" (I/Opener, SunExpert Magazine, April, 1993).
The ERGO-Shell (esh) is another radical departure from conventional shell design. It is available in ftp://ftp.gmd.de/GMD/ergo/, and the README file gives an enticing look at its goals:
ERGO is an ergonomic and technical concept. ERGO-Shell is a UNIX user-interface for software engineers.
Current interfaces do not assist the user in conceptualizing tasks prior to performance. As a result they tend to promote ad hoc problem solving. ERGO, as a concept, encourages the user to design and structure tasks with the aid of the ERGO-Shell.
ERGO, as a shell, provides a set of tools enabling the user to individualize the user-interface in view of the current problem situation. Consequently, the ERGO-Shell attempts to promote conceptually driven problem solving. The preparation and planning of tasks is assisted using the ERGO-Shell. Thus, the Shell may alter your style of managing the complexity of your tasks.
The folks at Murray Hill are hard at work on Plan 9, a putative successor to UNIX. The manual pages and research documents, available in ftp://plan9.att.com/plan9/, are a delightful snapshot of their current progress. Unfortunately, unless you are among the anointed, you will not be able to play with Plan 9, itself.
You can, however, try out a clone of the Plan 9 rc shell. It's located in ftp://viz.tamu.edu/pub/rc/. If you like its general flavor, but want to customize some of its features, take a look at es, described above.
Like bash, described above, the Z shell (zsh) combines features from other shells. Zsh draws principally from bash, ksh, and csh, and ends up being a fairly convincing clone of ksh. You can find it in ftp://princeton.edu/pub/zsh/. Development versions will occasionally be found in ftp://carlo.phys.uva.nl/pub/bas/zsh/.
Freeware Central |
Prime Time Freeware |
Send contributions, inquiries, or trouble reports to firstname.lastname@example.org.