Command Shells


A Unix shell is a command-line interpreter (see shell) and script host that provides a traditional user interface for the Unix operating system and for Unix-like systems. Users direct the operation of the computer by entering command input as text for a command line interpreter to execute or by creating text scripts of one or more such commands.


  • In UNIX systems, the thing that reads the commands you type is called a command shell or just shell.
  • The shell is a compiled program just like all the other utilities.
  • Shells are more complicated programs to write than most utilities.
  • You may choose from several shells.
  • The earliest shell to be used extensively was the Bourne Shell, named after its author.
  • Its executable file is sh.
  • Lots of early shell scripts (files full of shell commands to be interpreted by the shell) got written for sh. Some programmers still write new sh scripts because the scripts run faster than those written for other shells.
  • sh lacks lots of features people like in other shells, like csh.
  • csh is a much more popular shell and is available on almost every vendor's UNIX.
  • tcsh is becoming more popular than csh is but it is not a standard shell on most vendors' UNIX systems. Sys-admins need to install it.
  • We will cover tcsh in detail shortly.
  • Another shell popular on Sys-V machines is ksh, the Korn Shell, named after its author.
  • Some more radical programmer types use GNU's bash shell (Bourne Again Shell).
  • We won't cover ksh or bash but you may want to keep in mind that they are available.
  • As is UNIX tradition, if you don't like any of the shells available, you can write your own. That's how csh, ksh, and bash came to be.
  • We will describe tcsh since that is the shell we give new users on CSE systems.
  • Note the default prompt for tcsh is usually >, but we will use & in examples because > is a pain to use in web pages (web browsers interpret it as the beginning of an HTML tag).