History of Unix Shells (Learning the Korn Shell, 2nd Edition)
1.3. History of Unix Shells
The independence of the shell from the Unix operating system
per se has led to the development of dozens of
shells throughout Unix history, though only a few
have achieved widespread use.
The first major shell
was the Bourne shell (named after its inventor, Stephen Bourne);
it was included in the first widely popular version of Unix,
Version 7, starting in 1979. The Bourne shell is known on
the system as sh.
Although Unix has gone through many, many changes,
the Bourne shell is still popular and essentially unchanged.
Several Unix utilities and administration features depend on it.
The first widely used alternative shell was the C shell, or
csh.
It was written by Bill Joy at the University of
California at Berkeley as part of the Berkeley Software
Distribution
(BSD) version of Unix that came out a couple of
years after Version 7. It's included in essentially all recent Unix versions.
(A popular variant is the so-called Twenex csh, tcsh.)
The C shell gets its name from the resemblance of its commands to statements in the
C programming language, which makes the shell easier for programmers on Unix systems to learn.
It supports a number of
operating system features (e.g., job control; see Chapter 8)
that were once unique to BSD Unix but by now have migrated
to just about all other modern versions. It also has a few important
features (e.g., aliases; see Chapter 3) that make it easier to
use in general.
1.3.1. The Korn Shell
The Korn shell, or ksh, was invented by David Korn of AT&T
Bell Laboratories in the mid-1980s. It is almost entirely
upwardly compatible with the Bourne shell,[2]
which means that Bourne shell users can use it right away, and
all system utilities that use the Bourne shell
can use the Korn shell instead.
In fact, some systems have the Korn shell installed as if it
were the Bourne shell.
[2]With a few extremely minor exceptions.
See Chapter 10 for the only important one.
The Korn shell began its public life in 1986 as part of
AT&T's "Experimental Toolchest," meaning that its source code was
available at very low cost to anyone who was willing to use
it without technical support and with the knowledge that it might
still have a few bugs.
Eventually, AT&T's Unix System
Laboratories (USL) decided to give it full support as
a Unix utility. As of USL's version of Unix called
System V Release 4 (SVR4 for short, 1989), it
was distributed with all USL Unix systems, all third-party
versions of Unix derived from SVR4, and many other versions.
Late in 1993, David Korn released a newer version, popularly known
as ksh93.
This version is distributed with many commercial Unix systems
as part of the Common Desktop Environment (CDE), typically as
the "desktop Korn shell," /usr/dt/bin/dtksh.
Although
Unix itself has changed owners several times since then,
David Korn remained at Bell Laboratories until 1996, when
AT&T (voluntarily, this time) split itself apart into
AT&T Corporation, Lucent Technologies, and NCR.
At that time, he moved to AT&T Research Laboratories
from Bell Labs (which remained part of Lucent).
Although both Lucent and AT&T retained full rights to the Korn shell,
all enhancements and changes now come from David Korn at AT&T.
On March 1, 2000, AT&T released the ksh93 source
code under an Open Source-style license.
Getting the source code is discussed further in Appendix C,
and the license is presented in Appendix D.
This book focuses on the 2001 version of ksh93.
Occasionally, the book notes a significant difference between
the 1993 and 1988 versions.
Where necessary, we distinguish them as ksh93
and ksh88, respectively.
Appendix A describes the differences between the
1988 and 1993 versions in an orderly fashion, and other shell versions
are summarized briefly in that appendix, as well.
1.3.2. Features of the Korn Shell
Although the Bourne shell is still known as the "standard"
shell, the Korn shell is also popular.
In addition to its Bourne shell
compatibility, it includes the best features
of the C shell as well as several advantages of its own.
It also runs more efficiently than any previous shell.
The Korn shell's command-line editing modes are the features
that tend to attract people to it at first.
With command-line editing, it's much
easier to go back and fix mistakes than it is with the C
shell's history mechanism -- and the Bourne shell doesn't let
you do this at all.
The other major Korn shell feature that is intended mostly for
interactive users is job control. As Chapter 8 explains,
job control gives you the ability to stop, start, and pause
any number of commands at the same time. This feature was
borrowed almost verbatim from the C shell.
The rest of the Korn shell's important advantages are mainly
meant for shell customizers and programmers. It has
many new options and variables for customization, and its
programming features have been significantly expanded to
include function definition, more control structures,
built-in regular expressions and arithmetic,
associative arrays, structured variables,
advanced I/O control, and more.
1.2. Scope of This Book1.4. Getting the 1993 Korn Shell
Copyright © 2003 O'Reilly & Associates. All rights reserved.
Wyszukiwarka
Podobne podstrony:
ch01ch01ch01ch01ch01ch01ch01ch01ch01ch01 (2)ch01Ch01 2ch01ch01ch01ch01ch01ch01 (3)ch01więcej podobnych podstron