Unix Shells: C, Bourne, Bourne Again, Korn, and Tenex Shells - PowerPoint PPT Presentation

About This Presentation
Title:

Unix Shells: C, Bourne, Bourne Again, Korn, and Tenex Shells

Description:

Some are original shells and others combine features of the original shells ... This feature was not in the orginal version, but has since become almost standard. ... – PowerPoint PPT presentation

Number of Views:321
Avg rating:3.0/5.0
Slides: 22
Provided by: Kat8239
Category:
Tags: again | bourne | korn | orginal | shells | tenex | unix

less

Transcript and Presenter's Notes

Title: Unix Shells: C, Bourne, Bourne Again, Korn, and Tenex Shells


1
Unix Shells C, Bourne, Bourne Again, Korn, and
Tenex Shells
  • Presentation by
  • Katie Harris
  • Andrew Murray

2
Introduction
  • Numerous types of shells offered
  • Why so many shells?
  • Some are original shells and others combine
    features of the original shells
  • 5 shells Bourne Shell, Bourne Again Shell, C
    Shell, Korn Shell, and Tenex Shell

3
Bourne Shell
  • Default Unix Shell created in 1977 by Stephen
    Bourne
  • The UNIX Programming Environment
  • Foundation for future shells
  • Very strong and powerful syntactical language
  • Controlling input and output File Descriptor 2
  • Larger argument list size and the idea of having
    environment variables

4
C Shell
  • Developed by Bill Joy at the University of
    California at Berkeley
  • Extensive command language with syntax similar to
    the C programming language
  • Job control features of the BSD kernel
  • Never very popular
  • Aliases
  • Command History
  • Bourne Programming, C-Shell Command
    Interpretation

5
Bash Shell
  • Bourne-again shell developed as a part of the GNU
    project by Brian Fox in 1987
  • Default shell on most GNU/Linux and Mac OS X
    Panther systems
  • Freely distributed and combines C-Shell and
    Bourne Shell
  • File completion
  • Easier History Use

6
Korn Shell
  • Created by David Korn in ATT Labs in 1983
  • Compatible with Bourne Shell
  • Utilizes both features from the Bourne Shell and
    the C Shell
  • Some features include coprocesses and
    one-dimensional arrays
  • The Korn shell is an interactive command
    interpreter and command programming language. The
    shell carries out commands specified at the
    terminal or from a file.

7
Tenex Shell
  • Created by Ken Greer
  • Tcsh is an enhanced, but completely compatible
    version of the Berkeley UNIX C shell (csh).
  • It is a command language interpreter usable both
    as an interactive login shell and a shell script
    command processor.
  • It includes a command-line editor, programmable
    word completion, spelling correction, a history
    mechanism, job control and a C-like syntax.

8
Shell Features
  • sh csh ksh bash tcsh
  • Job control N Y Y
    Y Y
  • Aliases N Y
    Y Y Y
  • Shell functions Y(1) N
    Y Y N
  • "Sensible" Input/Output redirectionY N Y
    Y N
  • Directory stack N Y
    Y Y Y
  • Command history N Y Y
    Y Y
  • Command line editing N N Y
    Y Y
  • Vi Command line editing N N Y
    Y Y(3)
  • Emacs Command line editing N N Y
    Y Y
  • Rebindable Command line editing N N N
    Y Y
  • User name look up N Y Y
    Y Y

9
Shell Features(2)
  • sh csh ksh bash tcsh
  • Login/Logout watching N N
    N N Y
  • Filename completion N Y(1)
    Y Y Y
  • Username completion N Y(2)
    Y Y Y
  • Hostname completion N Y(2)
    Y Y Y
  • History completion N N
    N Y Y
  • Fully programmable Completion N N
    N N Y
  • Mh Mailbox completion N N
    N N(4) N(6)
  • Co Processes
    N N Y N N
  • Builtin artithmetic evaluation N Y
    Y Y Y
  • Can follow symbolic links invisibly N Y
    Y Y Y
  • Periodic command execution N N
    N N Y
  • Custom Prompt (easily) N N
    Y Y Y
  • Sun Keyboard Hack N N
    N N N
  • Spelling Correction N N
    N N Y

10
Shell Features(3)
  • sh csh ksh bash tcsh
  • Process Substitution N N N
    Y(2) N
  • Underlying Syntax sh
    csh sh sh csh
  • Freely Available N
    N N(5) Y Y
  • Checks Mailbox N Y Y
    Y Y
  • Tty Sanity Checking N N N
    N Y
  • Can cope with large argument lists Y N Y
    Y Y
  • Has non-interactive startup file N Y
    Y(7) Y(7) Y
  • Has non-login startup file N Y
    Y(7) Y Y
  • Can avoid user startup files N Y
    N Y N
  • Can specify startup file N N
    Y Y N
  • Low level command redefinition N N
    N N N
  • Has anonymous functions N N
    N N N
  • List Variables
    N Y Y N Y
  • Full signal trap handling Y N
    Y Y N

11
Shell Features(4)
  • sh csh ksh bash tcsh
  • File no clobber ability N Y
    Y Y Y
  • Local variables N N
    Y Y N
  • Lexically scoped variables N N N
    N N
  • Exceptions N N
    N N N
  • Y Feature can be done using this shell.
  • N Feature is not present in the shell.
  • F Feature can only be done by using the shells
    function mechanism.
  • L The readline library must be linked into the
    shell to enable this Feature.
  • This feature was not in the orginal version, but
    has since become almost standard.
  • This feature is fairly new and so is often not
    found on many versions of the shell, it is
    gradually making its way into standard
    distribution.
  • The Vi emulation of this shell is thought by many
    to be incomplete.
  • This feature is not standard but unoffical
    patches exist to perform this.
  • A version called 'pdksh' is freely available, but
    does not have the full functionality of the
    ATT version.
  • This can be done via the shells programmable
    completion mechanism.
  • Only by specifing a file via the ENV environment
    variable.

12
Redirection and Pipes
13
Common Features to Bourne, Korn, and C Shells
  • Symbol/Command Meaning/Action
  • gt Redirect output
  • gtgt Append to file
  • lt Redirect input
  • ltlt Here document (redirect input)
  • Pipe output
  • Start a coprocess (Korn shell only)
  • Run process in background
  • Separate commands on same line
  • Match any character(s) in filename
  • ? Match single character in filename
  • Match any characters enclosed
  • ( ) Execute in subshell
  • Substitute output of enclosed command
  • Partial quote(allows var. and command
    expansion
  • Full quote(no expansion)

14
Common Features to Bourne, Korn, and C Shells(2)
  • Symbol/Command Meaning/Action
  • \ Quote following character
  • varUse value for variable
  • Process ID
  • 0 Command name
  • n nth argument (0ltnlt9)
  • All arguments as simple words
  • Begin comment
  • bg Background execution
  • break Break from loop statements
  • cd Change directory
  • continue Resume a program loop
  • echo Display output
  • eval Evaluate arguments
  • exec Execute a new shell
  • fg Foreground execution

15
Common Features to Bourne, Korn, and C Shells(3)
  • Symbol/Command Meaning/Action
  • jobs Show active jobs
  • kill Terminate running jobs
  • shift Shift positional parameters
  • stop Suspend a background job
  • suspend Suspend a foreground job
  • time Time a command
  • umask Set default file permissions for new
    files
  • unset Erase variable or function definitions
  • wait Wait for a background job to finish

16
Differing Features of Bourne, Korn, and C Shells
  • sh ksh csh Meaning/Action
  • Prompt
  • gt gt! Force redirection
  • gtfile 2gt1 gtfile 2gt1 gt file Combine stdout and
    stderr
  • Expand elements in list
  • Substitute output of
    enclosed command
  • ( ) Substitute output of enclosed
    command
  • HOME HOME home Home directory
  • Home directory symbol
  • varvalue varvalue set varvalue Variable
    assignment
  • export var export varval setenv var val Set
    environment variable
  • nn More than nine args can be
    referenced
  • _at_ _at_ All args as separate words
  • argv Number of arguments

17
Differing Features of Bourne, Korn, and C
Shells(2)
  • sh ksh csh Meaning/Action
  • ? ? status Exit status
  • ! ! Background exit status
  • - - Current options
  • . file . file source file Read commands in file
  • alias xy alias x y Name x stands for y
  • case case switch/case Choose alternatives
  • cd - popd/pushd Switch directories
  • done done end End a loop statement
  • esac esac endsw End case or switch
  • exit n exit n exit (expr) Exit with a
    status
  • for/do for/do foreach Loop through variables
  • print r glob Ignore echo escapes
  • hash alias t hashstat Display hashed
    comments
  • hash cmds alias t cmds rehash Remember command
    locations
  • hash r PATHPATH unhash Forget command
    locations
  • history history List previous commands

18
Differing Features of Bourne, Korn, and C
Shells(3)
  • sh ksh csh Meaning/Action
  • r !! Redo previous command
  • r str !str Redo command that starts
    with str\
  • r xcmd !cmds/x/y Edit command, then
    execute
  • if i eq 5 if ((i5)) if (i5) Sample if
    statement
  • fi fi endif End if statement
  • ulimit ulimit limit Set resource limits
  • pwd pwd dirs Print working directory
  • read read lt Read from standard input
  • trap 2 trap 2 onintr Ignore interrupts
  • unalias unalias Remove aliases
  • until/do until/do Begin until loop
  • while/do while/do while Begin while loop

19
Shell control structures
  • Structure Bourne Korn C Shell
  • IF if if if() then
  • THEN then then
  • ELSE-IF elif elif Else if
  • ELSE else else else
  • ENDIF fi fi endif
  • CASE case case switch
  • value) value) case value
  • breaksw
  • ) ) default
  • esac esac endsw
  • FOR for for foreach
  • Do do
  • done done end
  • REPEAT xargs -1 xargs -1 xargs -1
  • repeat
  • UNTIL until until
  • Do do
  • done done

20
Conclusion
  • Numerous shells but all essential to the
    evolution of the Unix system and the shell
  • Build off of each other
  • Main building block for all shells in one form or
    another is the Bourne Shell

21
Any Questions?
Write a Comment
User Comments (0)
About PowerShow.com