The KornShell

The Kornshell (ksh) was written by David Korn in 1983. It is a very popular shell for scripting as well as interactive use, particularly on proprietary Unices. Like bash and dash, it is backward-compatible with the Bourne shell but adds new features and syntax. Ksh introduced cursor-key navigation of the shell history, as well as providing arrays and floating-point math. For a long time, ksh was proprietary Unix software of AT&T, so pdksh (now mksh, http://mirbsd.de/mksh) is a Free Software equivalent to ksh93. After ksh93 was released under IBM’s Common Public License in 2005, most GNU/Linux distributions included ksh93 instead of pdksh or mksh, as did OpenSolaris. As a result, whenever you find ksh on a recent system, it is likely to be the genuine ksh93 and not a clone.

The common ground between ksh and Bourne functionality was used to define the POSIX standard for /bin/sh, so ksh is a significant shell scripting language. In traditional Unix systems, it is quite acceptable for the root user’s shell to be set to /bin/ksh. It is the default shell on IBM’s AIX Unix. /etc/init.d scripts will still be run under the Bourne shell, but the interactive root shell can be ksh (often with the -o vi option to provide vi-like history recall).

Microsoft’s Services For Unix (SFU — now discontinued) provided an almost-compatible ksh shell for the Windows environment, although it was based on mksh, which at the time was not quite compatible with the original ksh. At http://lists.blu.org/pipermail/discuss/1998-August/002393.html ...

Get Shell Scripting: Expert Recipes for Linux, Bash, and More now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.