Korn shell
Lua error in Module:Infobox at line 199: malformed pattern (missing ']'). 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] The initial development was based on Bourne shell source code.[6] Other early contributors were Bell Labs developers Mike Veach and Pat Sullivan, who wrote the Emacs- and vi-style line editing modes' code, respectively.[7] 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 (IEEE Std 1003.2-1992.) Major differences between KornShell and the traditional Bourne shell include:
- Job control, command aliasing, and command history designed after the corresponding C shell features. Job control was added to the Bourne Shell in 1989.[8]
- A choice of three command line editing styles based on vi, Emacs, and XEmacs.
- Associative arrays and built-in floating point arithmetic operations (only available in the ksh93 version of KornShell).
- Dynamic extensibility of built-in commands (as of ksh93).
History
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 Eclipse Public License.[4] 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 ksh93u, following ksh93t+ (which followed ksh93t); ksh93v is in the beta phase.[9]
As "Desktop KornShell", dtksh, the ksh93 was distributed as part of the CDE.[10] This version also provide shell-level mappings for Motif widgets. It was intended as competitor to tcl/tk.[11]
The original KornShell, ksh88, is the default shell on AIX since version 4,[12][13] with ksh93 available separately.[14]
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.[15] UnixWare also includes dtksh when CDE is installed.
Variants
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, forked from pdksh, from MirOS BSD licensed under permissive (though not public domain) terms; specifically, the MirOS Licence.[5] Outside of BSD, this variant has replaced pdksh on Debian.[16]
- 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.[17][18] in SFU version 3.0 Microsoft replaced the MKS Korn shell with a new POSIX.2-compliant shell as part of Interix.[19]
- KornShell is included in UWIN, a Unix compatibility package by David Korn.[20]
See also
- Comparison of computer shells
- List of Unix utilities
- The test program
- The find program
References
<templatestyles src="Reflist/styles.css" />
Cite error: Invalid <references>
tag; parameter "group" is allowed only.
<references />
, or <references group="..." />
Further reading
- Lua error in package.lua at line 80: module 'strict' not found.
- David G. Korn, Charles J. Northrup and Jeffery Korn The New KornShell—ksh93, Linux Journal, Issue 27, July 1996
External links
- Korn shell home page (AT&T ksh)
- ksh93 man page at research.att.com (Error: unknown archive URL) (archived (Date missing))
- ksh88 man page
- Public Domain Korn shell (pdksh)
- MirBSD Korn Shell (mksh)
- mksh man page (also as PDF in DIN A4 paper size)
- ↑ 1.0 1.1 Lua error in package.lua at line 80: module 'strict' not found.
- ↑ 2.0 2.1 Lua error in package.lua at line 80: module 'strict' not found.
- ↑ http://www2.research.att.com/~astopen/download/notes.html
- ↑ 4.0 4.1 http://www2.research.att.com/~astopen/download/gen/ast-open.html
- ↑ 5.0 5.1 https://www.mirbsd.org/mksh.htm
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ http://www.in-ulm.de/~mascheck/bourne/#variants Bourne Shell evolvement
- ↑ http://lists.research.att.com/pipermail/ast-users/2014q2/004548.html
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ http://publib.boulder.ibm.com/infocenter/aix/v6r1/index.jsp?topic=/com.ibm.aix.cmds/doc/aixcmds5/sh.htm
- ↑ http://publib.boulder.ibm.com/infocenter/aix/v6r1/index.jsp?topic=/com.ibm.aix.baseadmn/doc/baseadmndita/korn_shell_enhanced.htm
- ↑ http://uw714doc.sco.com/en/DIFFS/UNIX95_Conformance.html#ksh-93_vs_ksh-88
- ↑ https://people.debian.org/~spaillard/Debian_Release_Notes/mksh.html
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.