Navigation Map

Search Illuminati Online!
Enter terms to search for:

Your Account Preferences

Macintosh Help
Windows 2000 Help
Windows 95/98 Help
Windows 3.1 Help
Windows NT 4.0 Help
Linux Help

Web Help Desk

Mirrored Documentation

IO - Info and Help - Shells

Shells, Shells, and More Shells

Just What Is A Shell, Anyway?Your shell is the program that prompts you for commands, interprets what you type in, and runs that. It can handle job control for you, letting you run utilities in the background while another runs in the foreground. It can do completion, saving you keystrokes. (The original developers of UNIX hated excess keystrokes. This explains the terse syntax of C, and the lack of vowels/use of acronyms in the basic commands -- eg. bc(1), cc(1), cp(1), dd(1), df(1), ln(1), ls(1), mv(1), nm(1), pr(1), rm(1), tr(1), wc(1), not to mention sh(1), the original shell.

In the Beginning There Was ...

UNIX started with /bin/sh, the Bourne Shell, named after its author, Steve Bourne of Bell Labs. Written for Version 7, it is a rather simple shell, best left for non-interactive scripts.

Off to the Shore

Later, during the development of BSD at the University of California at Berkeley, Bill Joy wrote /bin/csh, the C shell. New features included C-like control statements, job control, and command history. This became the default login shell on BSD systems, while the Bourne shell was used for scripts. Even today, most users of the C shell & its derivatives write scripts in Bourne.

Feeping Creaturism

The original C Shell was not without bugs. Rather than waiting for UCB, users submitted bug fixes and new features to the net, including TENEX-style command completion. The result was /bin/tcsh. (See the man page for a list of over four dozen authors and contributors.) If you like the C shell, then /bin/tcsh is the shell for you.

A Maize of Features

Popping back to Bell Labs, we find the KornShell, written by David Korn. Using a syntax based on the Bourne shell, it adds the features that made the C shell so popular. The KornShell is only available in System V -- and was an extra cost add on prior to Release 4. Due to its limited availability -- and the fact that you needed a full AT& source license to get the KornShell's source -- Eric Gisin took the public domain System 7 version of the Bourne Shell and added on most of the features of the KornShell. The result, pdksh, is shipped by BSDI as /bin/ksh. This is our default login shell.

GNU is not UNIX

Seeing how well the KornShell compares to its predecessors, the folks behind POSIX made it their standard shell.

Along comes the Free Software Foundation, wanting a free, POSIX compatable system. Part of that is /bin/bash, the Bourne Again Shell. Bash has many of the same features as the real KornShell, and is recommended for those who favour the Bourne syntax in their login shells.

Plan 9 From Outer Space

Rather than porting the Bourne shell to Plan 9, Tom Duff wrote rc, and then published a paper on it. Byron Rakitzis liked it enought to implement it under UNIX. Not having the historical garbage, many people find it to be a cleaner shell. We don't, currently, have rc -- or its successor, es -- installed, though.

The Alphabet Ends With Zed

Last on our list of shells is Paul Falstad's entry, /bin/zsh. Similar to but not completely compatable with Bourne, the Z shell continues to expand regularly. There can be great power in an excess of features -- if you can learn them all. (Cf. PL/1.)

How Do I Ever Choose

First, you want to look at the file /etc/shells to see what choices you have for your login shell. UNIX systems limit you to choosing a shell from /etc/shells for security reasons -- and also to ensure that you can log in next time....

Next, go read the excellent FAQs.

Finally, you can use our web-based user account information management page to change your password settings, shell, or handle. The change will go into effect within 30 minutes.

Last revised August 3, 2000