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; 13 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 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 ksh93v; the previous version was ksh93u, following ksh93t+ (which followed 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]