The Korn shell is the most advanced of the shells that are "officially"
distributed with UNIX systems.
It's a backward-compatible evolutionary
successor to the Bourne shell that includes most of the C shell's
major advantages as well as a few new features of its own.
Features appropriated from the C shell include:
Job control, including the fg and bg commands and
the ability to stop jobs with CTRL-Z.
Aliases, which allow you to define shorthand names for commands
or command lines.
Functions (included in some C shell versions), which increase
programmability and allow you to store your own shell code in
memory instead of files.
Command history, which lets you recall previously entered
The Korn shell's major new features include:
Command-line editing, allowing you to use vi or
emacs-style editing commands on your command lines.
Integrated programming features: the functionality of
several external UNIX commands, including test, expr,
getopt, and echo, has been integrated into the
shell itself, enabling common programming tasks to be done
more cleanly and without creating extra processes.
Control structures, especially the select construct,
which enables easy menu generation.
Debugging primitives that make it possible to write
tools that help programmers debug their shell code.
Regular expressions, well known to users of UNIX utilities
like grep and awk, have been added to the standard set
of filename wildcards and to the shell variable facility.
Advanced I/O features, including the ability to do
two-way communication with concurrent processes (coroutines).
New options and variables that give you more ways to customize
Increased speed of shell code execution.
Security features that help protect against "Trojan horses"
and other types of break-in schemes.