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 commands.
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 your environment.
Increased speed of shell code execution.
Security features that help protect against "Trojan horses" and other types of break-in schemes.