KornShell (
ksh
) is a
Unix shell which was developed by
David Korn at
Bell Labs
Nokia Bell Labs, originally named Bell Telephone Laboratories (1925–1984),
then AT&T Bell Laboratories (1984–1996)
and Bell Labs Innovations (1996–2007),
is an American industrial research and scientific development company owned by mult ...
in the early 1980s and announced at
USENIX on July 14, 1983.
[ The initial development was based on ]Bourne shell
The Bourne shell (sh) is a Shell (computing), shell Command-line interface#Command-line interpreter, command-line interpreter for computer operating systems.
The Bourne shell was the default Unix shell, shell for Version 7 Unix. Unix-like syste ...
source code. Other early contributors were Bell Labs developers Mike Veach and Pat Sullivan, who wrote the Emacs
Emacs , originally named EMACS (an acronym for "Editor MACroS"), is a family of text editors that are characterized by their extensibility. The manual for the most widely used variant, GNU Emacs, describes it as "the extensible, customizable, s ...
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.
Features
KornShell complies with POSIX.2
The Portable Operating System Interface (POSIX) is a family of standards specified by the IEEE Computer Society for maintaining compatibility between operating systems. POSIX defines both the system- and user-level application programming inter ...
, 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
* a choice of three command line editing styles based on vi, Emacs
Emacs , originally named EMACS (an acronym for "Editor MACroS"), is a family of text editors that are characterized by their extensibility. The manual for the most widely used variant, GNU Emacs, describes it as "the extensible, customizable, s ...
, and Gosling Emacs
Gosling Emacs (often shortened to "Gosmacs" or "gmacs") is a discontinued Emacs implementation written in 1981 by James Gosling in C (programming language), C.
Gosling initially allowed Gosling Emacs to be redistributed with no formal restriction ...
* associative arrays and built-in floating-point arithmetic
In computing, floating-point arithmetic (FP) is arithmetic that represents real numbers approximately, using an integer with a fixed precision, called the significand, scaled by an integer exponent of a fixed base. For example, 12.345 can be ...
operations (only available in the version of KornShell)
* dynamic search for functions
* mathematical functions
* process substitution and process redirection
* C-language-like expressions
* enhanced expression-oriented and loops
* dynamic extensibility of (dynamically loaded) built-in commands (since )
* reference variables
* hierarchically nested variables
* variables can have member functions associated with them
* object-oriented-programming (since )
** variables can be objects with member (sub-)variables and member methods
** object methods are called with the object variable name followed (after a dot character) by the method name
** special object methods are called on: object initialization or assignment, object abandonment ()
** composition and aggregation is available, as well as a form of inheritance
History
KornShell was originally proprietary software
Proprietary software is software that is deemed within the free and open-source software to be non-free because its creator, publisher, or other rightsholder or rightsholder partner exercises a legal monopoly afforded by modern copyright and int ...
. In 2000 the source code was released under a license particular to AT&T, but since the ksh93q release in early 2005 it has been licensed under the Eclipse Public License
The Eclipse Public License (EPL) is a free and open source software license most notably used for the Eclipse IDE and other projects by the Eclipse Foundation. It replaces the Common Public License (CPL) and removes certain terms relating to ...
. 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 , , , and .
The functionality of the original KornShell, , was used as a basis for the standard POSIX.2
The Portable Operating System Interface (POSIX) is a family of standards specified by the IEEE Computer Society for maintaining compatibility between operating systems. POSIX defines both the system- and user-level application programming inter ...
, Shell and Utilities, Command Interpreter (IEEE Std 1003.2-1992.)
Some vendors still ship their own versions of the older variant, sometimes with extensions. is maintained on GitHub
GitHub, Inc. () is an Internet hosting service for software development and version control using Git. It provides the distributed version control of Git plus access control, bug tracking, software feature requests, task management, continuous ...
.
As "Desktop KornShell" (), is distributed as part of the Common Desktop Environment. This version also provides shell-level mappings for Motif
Motif may refer to:
General concepts
* Motif (chess composition), an element of a move in the consideration of its purpose
* Motif (folkloristics), a recurring element that creates recognizable patterns in folklore and folk-art traditions
* Moti ...
widgets. It was intended as a competitor to Tcl
TCL or Tcl or TCLs may refer to:
Business
* TCL Technology, a Chinese consumer electronics and appliance company
**TCL Electronics, a subsidiary of TCL Technology
* Texas Collegiate League, a collegiate baseball league
* Trade Centre Limited, a ...
/ Tk.
The original KornShell, , became the default shell on AIX
Aix or AIX may refer to:
Computing
* AIX, a line of IBM computer operating systems
*An Alternate Index, for a Virtual Storage Access Method Key Sequenced Data Set
*Athens Internet Exchange, a European Internet exchange point
Places Belgium
...
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 CDE may refer to:
Education
* California Department of Education
* Career Development Event, a type of contest sponsored by the National FFA Organization
* Center for Data Engineering, IIIT Hyderabad
* Center for Distance Education at University of ...
is installed.
The ksh93 distribution underwent a less stable fate after the authors left AT&T around 2012 at stable version ksh93u+. The primary authors continued working on a ksh93v- beta branch until around 2014. That work was eventually taken up primarily by Red Hat
Red Hat, Inc. is an American software company that provides open source software products to enterprises. Founded in 1993, Red Hat has its corporate headquarters in Raleigh, North Carolina, with other offices worldwide.
Red Hat has become ass ...
in 2017 (due to customer requests) and resulted in the eventual initial release of ksh2020 in the Fall of 2019. That initial release (although fixing several prior stability issues) introduced some minor breakage and compatibility issues. 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. Bugfix development continues on the ksh93u+m branch, based on the last stable AT&T release (ksh93u+ 2012-08-01). ksh2020 was released as a "major release for several reasons" such as removal of EBCDIC support, dropped support for binary plugins written for ksh93u+ and removal of some broken math functions, was released by AT&T, but has never been maintained or supported by them (not even on its initial release date).
Primary contributions to the main software branch
For the purposes of the lists below, the main software branch of KSH is defined as the original program, dating from July 1983, up and through the release of KSH2020 in late 2019.
Continuing development of follow-on versions (branches) of KSH have split into different groups starting in 2020 and are not elaborated on below.
Primary individual contributors
The following are listed in a roughly ascending chronological order of their contributions:
* David G. Korn (AT&T Bell Laboratories, AT&T Laboratories, and Google; and creator)
* Glenn S. Fowler (AT&T Bell Laboratories, AT&T Laboratories)
* Kiem-Phong Vo (AT&T Bell Laboratories, AT&T Laboratories)
* Adam Edgar (AT&T Bell Laboratories)
* Michael T. Veach (AT&T Bell Laboratories)
* Patrick D. Sullivan (AT&T Bell Laboratories)
* Matthijs N. Melchior (AT&T Network Systems International)
* Karsten-Fleischer (Omnium Software Engineering)
* Boyer-Moore
* Siteshwar Vashisht (Red Hat)
* Kurtis Raider
Integration consultant
* Roland Mainz
Primary corporate contributors
The following are listed in a roughly ascending chronological order of their contributions:
* AT&T Bell Laboratories
Nokia Bell Labs, originally named Bell Telephone Laboratories (1925–1984),
then AT&T Bell Laboratories (1984–1996)
and Bell Labs Innovations (1996–2007),
is an American industrial research and scientific development company owned by mult ...
* AT&T Network Systems International
* AT&T Laboratories (now AT&T Labs)
* Omnium Software Engineering
An omnium (from Latin '' Omni'': of all, belonging to all) is a multiple race event in track cycling. Historically the omnium has had a variety of formats. In recent years, road racing has also adopted the term to describe multi-day races that fe ...
* Oracle Corporation
Oracle Corporation is an American multinational computer technology corporation headquartered in Austin, Texas. In 2020, Oracle was the third-largest software company in the world by revenue and market capitalization. The company sells da ...
* Google
Google LLC () is an American multinational technology company focusing on search engine technology, online advertising, cloud computing, computer software, quantum computing, e-commerce, artificial intelligence, and consumer electronics. ...
* Red Hat
Red Hat, Inc. is an American software company that provides open source software products to enterprises. Founded in 1993, Red Hat has its corporate headquarters in Raleigh, North Carolina, with other offices worldwide.
Red Hat has become ass ...
Donated corporate resources
Besides the primary major contributing corporations (listed above), some companies have contributed free resources to the development of KSH. These are listed below (alphabetically ordered):
* Coverity
Coverity is a proprietary static code analysis tool from Synopsys. This product enables engineers and security teams to find and fix software defects.
Coverity started as an independent software company in 2002 at the Computer Systems Laboratory ...
* GitHub
GitHub, Inc. () is an Internet hosting service for software development and version control using Git. It provides the distributed version control of Git plus access control, bug tracking, software feature requests, task management, continuous ...
* Travis CI
Travis CI is a hosted continuous integration service used to build and test software projects hosted on GitHub, Bitbucket, GitLab, Perforce, Apache Subversion and Assembla.
Travis CI was the first CI service that provided services to open-sourc ...
Variants
There are several forks
In cutlery or kitchenware, a fork (from la, furca 'pitchfork') is a utensil, now usually made of metal, whose long handle terminates in a head that branches into several narrow and often slightly curved tines with which one can spear foods ei ...
and clones of KornShell:
* – a fork of included as part of CDE CDE may refer to:
Education
* California Department of Education
* Career Development Event, a type of contest sponsored by the National FFA Organization
* Center for Data Engineering, IIIT Hyderabad
* Center for Distance Education at University of ...
.
* – a fork of that provides access to the Tk widget toolkit.
* – a port of OpenBSD
OpenBSD is a security-focused, free and open-source, Unix-like operating system based on the Berkeley Software Distribution (BSD). Theo de Raadt created OpenBSD in 1995 by forking NetBSD 1.0. According to the website, the OpenBSD project em ...
's variant of KornShell, intended to be maximally portable across operating systems. It was used as the default shell in DeLi Linux
Deli may refer to:
* Delicatessen, a shop selling specially prepared food, or food prepared by such a shop
* Sultanate of Deli, a former sultanate in North Sumatra, Indonesia
Places
* Deli, Boyer-Ahmad, a village in Kohgiluyeh and Boyer-Ahmad Prov ...
7.2.
* – a Linux
Linux ( or ) is a family of open-source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991, by Linus Torvalds. Linux is typically packaged as a Linux distribution, which ...
port of OpenBSD
OpenBSD is a security-focused, free and open-source, Unix-like operating system based on the Berkeley Software Distribution (BSD). Theo de Raadt created OpenBSD in 1995 by forking NetBSD 1.0. According to the website, the OpenBSD project em ...
's variant of KornShell, with minimal changes.
* – a free
Free may refer to:
Concept
* Freedom, having the ability to do something, without having to obey anyone/anything
* Freethought, a position that beliefs should be formed only on the basis of logic, reason, and empiricism
* Emancipate, to procur ...
implementation of the KornShell language, forked from OpenBSD . It was originally developed for MirOS BSD
MirOS BSD (originally called MirBSD) is a free and open source operating system which started as a fork of OpenBSD 3.1 in August 2002. It was intended to maintain the security of OpenBSD with better support for European localisation. Since then ...
and is licensed under permissive (though not public domain) 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 variant that provides several Amiga-specific features, such as ARexx interoperability. In this tradition MorphOS uses in its SDK.
* MKS Inc.
MKS, Inc (formerly called Mortice Kern Systems) is a subsidiary of PTC, Inc. It was previously a multinational independent software vendor that was acquired by Parametric Technology Corporation (now PTC) on May 31, 2011. MKS operated in the A ...
's MKS Korn shell – a proprietary implementation of the KornShell language from Microsoft Windows Services for UNIX
Windows Services for UNIX (SFU) is a discontinued software package produced by Microsoft which provided a Unix environment on Windows NT and some of its immediate successor operating-systems.
SFU 1.0 and 2.0 used the MKS Toolkit; starting with ...
(SFU) 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
Microsoft Corporation is an American multinational technology corporation producing computer software, consumer electronics, personal computers, and related services headquartered at the Microsoft Redmond campus located in Redmond, Washing ...
replaced the MKS Korn shell with a new POSIX.2-compliant shell as part of Interix
Interix was an optional, POSIX-conformant Unix subsystem for Windows NT operating systems. Interix was a component of Windows Services for UNIX, and a superset of the Microsoft POSIX subsystem. Like the POSIX subsystem, Interix was an environment ...
.
* KornShell is included in UWIN, a Unix compatibility package by David Korn.
See also
* Comparison of computer shells
A command shell is a command-line interface to interact with and manipulate a computer's operating system.
General characteristics
Interactive features
Background execution
Background execution allows a shell to run a command without us ...
* List of Unix commands
* test (Unix)
test is a command-line utility found in Unix, Plan 9, and Unix-like operating systems that evaluates conditional expressions. test was turned into a shell builtin command in 1981 with UNIX System III and at the same time made available under th ...
References
Further reading
*
* David G. Korn, Charles J. Northrup and Jeffery Kor
The New KornShell—ksh93
Linux Journal
''Linux Journal'' (''LJ'') is an American monthly technology magazine originally published by Specialized System Consultants, Inc. (SSC) in Seattle, Washington since 1994. In December 2006 the publisher changed to Belltown Media, Inc. in Houston ...
, Issue 27, July 1996
External links
*
*
*
MirBSD Korn Shell (mksh)
*
{{Authority control
Cross-platform software
Free software programmed in C
Scripting languages
Software that uses Meson
Unix shells