KornShell
   HOME

TheInfoList



OR:

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 mul ...
in the early 1980s and announced at USENIX on July 14, 1983. The initial development was based on Bourne shell 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, ...
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 interf ...
, 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, ...
, and
Gosling Emacs Gosling Emacs (often shortened to "Gosmacs" or "gmacs") is a discontinued Emacs implementation written in 1981 by James Gosling in C. Gosling initially allowed Gosling Emacs to be redistributed with no formal restrictions, as required by the " ...
* 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 i ...
. 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 li ...
. 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 interf ...
, 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, cont ...
. 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 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 Belgiu ...
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 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 a ...
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 f ...
*
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 corporation, multinational technology company focusing on Search Engine, search engine technology, online advertising, cloud computing, software, computer software, quantum computing, e-commerce, ar ...
*
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 a ...


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 *
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, cont ...
*
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-sou ...


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 eit ...
and clones of KornShell: *  – a fork of included as part of CDE. *  – 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 e ...
'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 Pro ...
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, whi ...
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 e ...
's variant of KornShell, with minimal changes. *  – a free 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 i ...
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 wi ...
(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, Washi ...
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)


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