Pdksh
   HOME

TheInfoList



OR:

KornShell (ksh) is a
Unix shell A Unix shell is a command-line Interpreter (computing), interpreter or shell (computing), shell that provides a command line user interface for Unix-like operating systems. The shell is both an interactive command language and a scripting langua ...
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 The C shell (csh or the improved version, tcsh) is a Unix shell created by Bill Joy while he was a graduate student at University of California, Berkeley in the late 1970s. It has been widely distributed, beginning with the 2BSD release of the ...
, inspired by the requests of Bell Labs users.


Features

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 Command history is a feature in many operating system shells, computer algebra programs, and other software that allows the user to recall, edit and rerun previous commands. Command line history was added to Unix in Bill Joy's C shell of 1978 ...
designed after the corresponding
C shell The C shell (csh or the improved version, tcsh) is a Unix shell created by Bill Joy while he was a graduate student at University of California, Berkeley in the late 1970s. It has been widely distributed, beginning with the 2BSD release of the ...
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 array In computer science, an associative array, map, symbol table, or dictionary is an abstract data type that stores a collection of (key, value) pairs, such that each possible key appears at most once in the collection. In mathematical terms an as ...
s 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, 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 The Common Desktop Environment (CDE) is a desktop environment for Unix and OpenVMS, based on the Motif widget toolkit. It was part of the UNIX 98 Workstation Product Standard, and was for a long time the Unix desktop associated with commercia ...
. This version also provides shell-level mappings for Motif 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 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 Extended Binary Coded Decimal Interchange Code (EBCDIC; ) is an eight-bit character encoding used mainly on IBM mainframe and IBM midrange computer operating systems. It descended from the code used with punched cards and the corresponding six- ...
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 *
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 Clone or Clones or Cloning or Cloned or The Clone may refer to: Places * Clones, County Fermanagh * Clones, County Monaghan, a town in Ireland Biology * Clone (B-cell), a lymphocyte clone, the massive presence of which may indicate a pathologi ...
of KornShell: *  – a fork of included as part of CDE. *  – a fork of that provides access to the Tk
widget toolkit A widget toolkit, widget library, GUI toolkit, or UX library is a library or a collection of libraries containing a set of graphical control elements (called ''widgets'') used to construct the graphical user interface (GUI) of programs. Most widg ...
. *  – 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 {{about, , the 1970 British film, Permissive (film), the grammatical mode, Permissive mood, the flavor of software license, permissive free software licence A permissive cell or host is one that allows a virus to circumvent its defenses and replica ...
(though not public domain) terms; specifically, the
MirOS Licence The MirOS Licence is a free content licence (for software and other free cultural works such as graphical, literal, musical, …) originated at The MirOS Project for their own publications because the ISC license used by OpenBSD was perceived as ...
. In addition to its usage on BSD, this variant has replaced on Debian, and is the default shell on Android. *  – an
AmigaOS AmigaOS is a family of proprietary native operating systems of the Amiga and AmigaOne personal computers. It was developed first by Commodore International and introduced with the launch of the first Amiga, the Amiga 1000, in 1985. Early version ...
variant that provides several Amiga-specific features, such as
ARexx ARexx is an implementation of the Rexx language for the Amiga, written in 1987 by William S. Hawes, with a number of Amiga-specific features beyond standard REXX facilities. Like most REXX implementations, ARexx is an interpreted language. Program ...
interoperability. In this tradition
MorphOS MorphOS is an AmigaOS-like computer operating system (OS). It is a mixed Proprietary software, proprietary and Open-source software, open source OS produced for the Pegasos PowerPC (PPC) processor based computer, PowerUP accelerator equipped Amig ...
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 UWIN is a computer software package created by David Korn which allows programs written for the operating system Unix to be built and run on Microsoft Windows with few, if any, changes. Some of the software development was subcontracted to Wipr ...
, 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 This is a list of Unix commands as specified by IEEE Std 1003.1-2008, which is part of the Single UNIX Specification (SUS). These commands can be found on Unix operating systems and most Unix-like operating systems. List See also * List of G ...
*
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