KornShell is a Unix shell which was developed by David Korn at Bell Labs in the early 1980s and announced at USENIX on July 14, 1983. The initial development was based on Bourne shellsource code. Other early contributors were Bell Labs developers Mike Veach and Pat Sullivan, who wrote the Emacs and vi-style line editing modes' code, respectively. KornShell is backward-compatible with the Bourne shell and includes many features of the C shell, inspired by the requests of Bell Labs users.
Design
KornShell complies with POSIX.2, Shell and Utilities, Command Interpreter Major differences between KornShell and the traditional Bourne shell include:
KornShell was originally proprietary software. In 2000 the source code was released under a license particular to AT&T, but since the 93q release in early 2005 it has been licensed under the Eclipse Public License. KornShell is available as part of the AT&T Software Technology Open Source Software Collection. As KornShell was initially only available through a proprietary license from AT&T, a number of free and open source alternatives were created. These include,,, and. The functionality of the original KornShell,, was used as a basis for the standard POSIX.2, Shell and Utilities, Command Interpreter Some vendors still ship their own versions of the older variant, sometimes with extensions. is maintained on GitHub. As "Desktop KornShell", is distributed as part of the Common Desktop Environment. This version also provides shell-level mappings for Motif widgets. It was intended as a competitor to Tcl/Tk. The original KornShell,, became the default shell on AIX in version 4, with ksh93 being available separately. UnixWare 7 includes both and. The default Korn shell is, which is supplied as, and the older version is available as. UnixWare also includes when CDE is installed. The ksh93 distribution underwent a less stable fate after the authors left AT&T around 2012 at stable version ksh93u+. The authors continued working on a ksh93v- beta branch until around 2014, when a few community developers essentially "took over" and kept working to produce a heavily refactored "ksh2020". In March 2020, AT&T decided to roll back the community changes, stash them in a branch, and restart from ksh93u+, as the changes were too broad and too ksh-focused for the company to absorb into a project in maintenance mode. Debian offers ksh2020 in its testing version.
Variants
There are several software products related to KornShell:
– a Linux-based fork of OpenBSD's flavour of KornShell. It is used as the default shell in DeLi Linux.
– a free implementation of the KornShell language, forked from. It was originally developed for MirOS BSD and is licensed under permissive terms; specifically, the MirOS Licence. In addition to its usage on BSD, this variant has replaced on Debian, and is the default shell on Android.
– an AmigaOS flavour that provides several Amiga-specific features, such as ARexx interoperability.
MKS Inc.'s MKS Korn shell – a proprietary implementation of the KornShell language from Microsoft Windows Services for UNIX up to version 2.0; according to David Korn, the MKS Korn shell was not fully compatible with KornShell in 1998. In SFU version 3.0 Microsoft replaced the MKS Korn shell with a new POSIX.2-compliant shell as part of Interix.
KornShell is included in UWIN, a Unix compatibility package by David Korn.