Korn shell

From Wikipedia, the free encyclopedia
Jump to: navigation, search
Original author(s) David Korn
Initial release 1983[1][2]
Stable release ksh93v / May 20, 2013; 10 months ago (2013-05-20)[3]
Development status Active
Written in C
Operating system Cross-platform
Platform Unix
Available in English
Type Unix shell
License Common Public License (AT&T KornShell), mostly public domain with some GPL (pdksh), proprietary (dtksh)
Website www.kornshell.org

KornShell (ksh) 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.[1][2] Other early contributors were Bell Labs developers Mike Veach and Pat Sullivan, who wrote the Emacs- and vi-style line editing modes′ code, respectively.[4] KornShell is backward-compatible with the Bourne shell and includes many features of the C shell, inspired by the requests of Bell Labs users.


KornShell complies with POSIX.2, Shell and Utilities, Command Interpreter (IEEE Std 1003.2-1992.)

The Korn shell pioneered[citation needed] the practice of consultative user interface design, with input from Unix shell users, and from mathematical and cognitive psychologists. The user interface, which included a choice of editing styles (the choices included styles based on vi and on two variants of Emacs) was incorporated into, or copied by,[citation needed] most subsequent Unix shells.

Major differences between KornShell and the traditional Bourne shell include:


Interaction with pdksh in OpenBSD (default shell)

Until 2000, KornShell remained AT&T′s proprietary software. Since then it has been open source software, originally under a license particular to AT&T but, since the 93q release in early 2005, it has been licensed under the Common Public License. KornShell is available as part of the AT&T Software Technology (AST) 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 the public domain version, pdksh, mksh, GNU bash, and zsh.

The functionality of the original KornShell, ksh88, was used as a basis for the standard POSIX.2, Shell and Utilities, Command Interpreter (IEEE Std 1003.2-1992.)

Some vendors still ship their own version of the older ksh88, sometimes with extensions. ksh93 is still maintained by its author. Releases of ksh93 are versioned by appending a letter to the name; the current version is ksh93u; the previous version was ksh93t+, following ksh93t. Some intermediate bug-fix versions are released without changes to this version string.[5]

As "Desktop KornShell", dtksh, the ksh93 was distributed as part of the CDE.[6] This version also provide shell-level mappings for Motif widgets. It was intended as competitor to tcl/tk.[7]

The original KornShell, ksh88, is the default shell on AIX since version 4.[8][9] with ksh93 available separately.[10]

UnixWare 7 includes both ksh88 and ksh93. The default Korn shell is ksh93 supplied as /usr/bin/ksh, and the older version is available as /usr/bin/ksh88.[11] UnixWare also includes dtksh when CDE is installed.


There are several software products related to KornShell:

  • dtksh — a fork of ksh93, which is part of CDE;
  • tksh — a fork of ksh93, which provides access to the Tk widget toolkit;
  • oksh — a fork of OpenBSD′s flavour of KornShell, which supports GNU/Linux only; it is used as the default shell in DeLi Linux;
  • mksh — a free implementation of the KornShell language from MirOS BSD licensed under the permissive BSD/MIT-style MirOS Licence;
  • SKsh — an AmigaOS flavour, which 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 (SFU) up to version 2.0; according to David Korn, the MKS Korn shell was not fully compatible with KornShell in 1998;[12][13] in SFU version 3.0 Microsoft replaced the MKS Korn shell with a new POSIX.2-compliant shell as part of Interix;[14]
  • KornShell is included in UWIN, a Unix compatibility package by David Korn.[15]

See also[edit]


  1. ^ a b Ron Gomes (Jun 9 1983). "Toronto USENIX Conference Schedule (tentative)". net.usenix. Web link. Retrieved Dec 29 2010.
  2. ^ a b Guy Harris (Oct 10 1983). "csh question". net.flame. Web link. Retrieved Dec 29 2010.
  3. ^ http://www2.research.att.com/sw/download/release.2013-05-21.2012-08-06.html
  4. ^ Bolsky, Morris I.; Korn, David G. (1989). "Acknowledgements". The KornShell Command and Programming Language. Englewood Cliffs, NJ: Prentice Hall. pp. xii. ISBN 0-13-516972-0. 
  5. ^ http://www2.research.att.com/sw/download/notes.html
  6. ^ Bill Rosenblatt; Arnold Robbins (2002). Learning the Korn Shell (2 ed.). O'Reilly Media, Inc. pp. viii–ix. ISBN 978-0-596-00195-7. 
  7. ^ J. Stephen Pendergrast (1995). Desktop KornShell graphical programming. Addison-Wesley. p. 359. ISBN 978-0-201-63375-7. 
  8. ^ Casey Cannon; Scott Trent; Carolyn Jones (1999). Simply AIX 4.3. Prentice Hall PTR. p. 21. ISBN 978-0-13-021344-0. 
  9. ^ http://publib.boulder.ibm.com/infocenter/aix/v6r1/index.jsp?topic=/com.ibm.aix.cmds/doc/aixcmds5/sh.htm
  10. ^ http://publib.boulder.ibm.com/infocenter/aix/v6r1/index.jsp?topic=/com.ibm.aix.baseadmn/doc/baseadmndita/korn_shell_enhanced.htm
  11. ^ http://uw714doc.sco.com/en/DIFFS/UNIX95_Conformance.html#ksh-93_vs_ksh-88
  12. ^ "David Korn Tells All". Slashdot. Retrieved 2009-10-22. 
  13. ^ "Jerry Feldman — USENIX NT/LISA NT conference attendee". Lists.blu.org. Retrieved 2009-10-22. 
  14. ^ "Windows Services for UNIX Version 3.0". Technet.microsoft.com. Retrieved 2009-10-22. 
  15. ^ Anatole Olczak (2001). The Korn shell: Unix and Linux programming manual. Addison-Wesley Professional. p. 4. ISBN 978-0-201-67523-8. 

Further reading[edit]

External links[edit]