Unix Manual Pages

A History of Unix

Unix in Summary

An introductory tutorial on Unix...


Selecting a Shell

Regular Expressions...

Perl and Unix...

Help with vi...

Shell scripting...


The 10 Unix commands every beginner needs to know...

The 10 most misunderstood commands...

The 62 Core Commands

Commands by Category

Alphabetic list of commands...


Copyright/Copyleft info...

Picking a Shell



The shell is the interface program that reads and interprets your UNIX commands. UNIX was designed so that the shell interface is separate from the main part of the operating system program, so you can modify the interface to make it easier to use. Additionally, the shell is also a programmable environment, so you can write scripts for the shell to follow.

You have many to pick from, each with its own peculiarities

  • Bourne shell (sh)

    The Bourne shell (sh) is the original Unix shell written by Steve Bourne of Bell Labs.
    It is available on all UNIX systems.
    It does not have the interactive facilites provided by other shells such as the C shell and Korn shell, so you should use another shell for interactive use.
    It is the shell of choice developing portable shell scripts.


  • C Shell (csh)
  • Total C Shell (tcsh)

    This shell was written at the University of California, Berkley.
    It provides a C-like language - hence its name.
    Most of the features of modern interactive shell were originally developed in the csh including job control and command history and editing.
    tcsh is a public domain enhancement to the csh.
    It provides all the features of the C shell together with emacs style editing of the command line.


  • Korn Shell (ksh)

    This shell was written by David Korn of Bell labs.
    It is now provided as the standard shell on UNIX systems - in fact it is defined by POSIX as the standard shell for UNIX.
    It provides all the features of the C and TC shells together with a shell programming language similar to that of the original Bourne shell.
    It is the most efficient shell.
    Consider using this as your standard interactive shell.


  • Z Shell (zsh)

    zsh is a shell designed for interactive use, although it is also a powerful scripting language.
    Many of the useful features of bash, ksh, and tcsh were incorporated into zsh; many original features were added.
    Popular among programmers and advanced UNIX users.


  • Bourne-again Shell (bash)

    This is a public domain shell written by the Free Software Foundation under their GNU initiative.
    It is a full implementation of the IEEE Posix Shell and Tools specification.
    This shell is widely used within the academic commnity.
    bash provides all the interactive features of the C shell (csh) and the Korn shell (ksh).
    Its programming language is compatible with the Bourne shell (sh).
    If you use the Bourne shell (sh) for shell programming consider using bash as your complete shell environment.
    It is the default shell used by Linux and the most popular shell for new users.


  • rc Shell (rc)
  • A Shell (ash)
  • easy Shell (esh)
  • interactive selection tool (iselect)
  • Midnight Commander visual Shell (mc)
  • Public Domain Korn Shell (pdksh)
  • Statically-Linked Shell (sash)
  • VF File Manager for Unix (vfu)

How to change your shell prompt

© 1999-2009 Matchstick Consulting