9403: Shell Games

Mirrored fromhttp://www.cfcl.com/tin/P/9403.html

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 and rbash

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:

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:


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 | Up

Send contributions, inquiries, or trouble reports to webmaster@ptf.com.