KornShell

KornShell（ksh）是一款由于二十世纪八十年代早期在贝尔实验室开发的Unix shell，并在1983年7月14日的上发布。起初此软件基于Bourne shell的源代码编写。其他贡献者有贝尔实验室的开发者，如迈克·维奇（Mike Veach）和帕特·沙利文（Pat Sullivan）；他们分别编写了Emacs和vi风格的行编辑模式代码。KornShell向后兼容Bourne shell，同时还根据贝尔实验室用户的需求添加了诸多C shell的功能。

 设计 
KornShell实现了POSIX.2，同时拥有壳层及实用工具、命令解释器（IEEE Std 1003.2-1992.）。KornShell与传统的Bourne shell的主要差别有：
 根据C shell所设计的、命令别名及命令历史特性。作业控制功能于1989年才添加至Bourne Shell。
 提供基于vi、Emacs和XEmacs的三种命令行编辑风格。
 关联数组及内置的浮点运算操作（仅在版KornShell中可用）。
 内置指令的动态可扩展（截至版本）。

 历史 

KornShell起初是一款专有软件。2000年，其源代码以AT&T独有的许可发布；但在2005年年初，93q版本使用Eclipse公共许可证发布。由于KornShell起初为私有授权软件，在那时的人们创造了自由开源的替代品（、、GNU 及）。 KornShell被收录进了AT&T软件技术（AST）开源软件集。

KornShell的原始版本（）被当做POSIX.2、壳层及实用工具、命令解释器（IEEE Std 1003.2-1992.）的基础。

部分供应商有时会提供其自己根据老版本改编的变体，有时还会在其基础上添加扩展。现仍被作者维护，并通过在其后添加字母的方式命名发布版本；的最新版本为（及的更新版）；仍处于测试阶段（）。

作为“桌面版KornShell”（），作为通用桌面环境的一部分发布。此版本同时提供了对Motif挂件的壳层级映射。它的目的是成为Tcl/Tk的竞争对手。

原版KornShell（）成为了AIX第四版的默认壳层，但同时也可使用ksh93。

 7中既包括，也包括。默认的Kornshell版本为（），老版本则在下可用。UnixWare同时在安装了CDE的情况下提供{{mono|dtksh}。

 变体 
下列为多个与KornShel相关的软件产品：
  – 的分支，为CDE的一部分。
  – 的分支，提供对Tk部件工具箱的访问。
  – OpenBSD风味KornShell的Linux版分支，为的默认壳层。
  – KornShell语言的自由软件实现，为的分支。其起初为开发，以宽松的授权条款发布（）。除了用在BSD上外，此变体还替代了Debian上的，更是Android的默认壳层。
  – AmigaOS风味的版本，提供了多个Amiga的特有功能（如互用性）
 的MKS Korn shell – 来自（SFU）对KornShell语言的专有实现（版本2.0及以下）；据大卫·科恩所述，MKS Korn shell与1998年时的Kornshell不完全兼容。在SFU版本3.0中，微软使用中的POSIX.2兼容版壳层替换了MKS Korn shell。
 大卫·科恩的Unix兼容包中含有KornShell。

 另请参阅 


 Unix实用程序列表
 软件

 参考文献 

 延伸阅读 

 David G. Korn, Charles J. Northrup and Jeffery Korn The New KornShell—ksh93 , , Issue 27, July 1996

 外部链接 
 Korn shell主页（AT&T ksh）
 AT&T软件技术的（AST）GitHub页 ，其中有ksh源代码。
 KSH官方邮件列表 （ast-developers及ast-users）


 Public Domain Korn shell (pdksh)
 MirBSD Korn Shell（mksh）


Category:跨平台軟體
Category:用C編程的自由軟體
Category:脚本语言
Category:使用Meson的软件
Category:Unix shells
Category:面向文本编程语言