Friday, July 25, 2014

Shell in Linux/Unix

What is the Shell?

  • A shell is any program that provides an interactive environment for users
  • Whenever you login to a Unix system you are placed in a program called the shell. All of your work is done within the shell.
  • The shell is your interface to the operating system. It acts as a command interpreter; it takes each command and passes it to the operating system. It then displays the results of this operation on your screen.
  • There are several shells in widespread use. The most common ones are described below.
    There is a family of shells available on linux/unix:
    Shell Symbol Prompt Description
    bourne sh $ Original Unix shell written by Steve Bourne of Bell Labs. Available on all UNIX systems. Does not have the interactive facilites provided by modern shells such as the C shell and Korn shell. The Bourne shell does provide an easy to use language with which you can write shell scripts.
    korn ksh $ Written by David Korn of bell labs. It is now provided as the standard shell on Unix systems. Provides all the features of the C and TC shells together with a shell programming language similar to that of the original Bourne shell.
    c shell csh % Written at the University of California, Berkley. As it name indicates, it provides a C like language with which to write shell scripts.
    bourne again bash $ Public domain shell written by the Free Software Foundation under their GNU initiative. Ultimately it is intended to be a full implementation of the IEEE Posix Shell and Tools specification. Widely used within the academic commnity. 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).
  • Many more public domain shells are available like ash, zsh ...

Purpose of shells

  • Command line interpreter - Reading commands from users and executing them
  • Programming languages - Processing a collection of commands in a file
  • Job control language -
    • enables command sto be executed at a later time
    • allows commands to be run in the background
    • allows commands to be chained together
    • enables command input/output to be redirected


Post a Comment