原作者 | 大卫·科恩 |
---|---|
首次发布 | 1983[1][2] |
稳定版本 | ksh93u+ (2013年6月1日[3]) |
编程语言 | C |
操作系统 | Unix |
语言 | 英语 |
类型 | Unix shell |
许可协议 |
|
网站 | www |
KornShell(ksh
)是一款由大卫·科恩于二十世纪八十年代早期在贝尔实验室开发的Unix shell,并在1983年7月14日的USENIX年度技术会议上发布。[1][2]起初此软件基于Bourne shell的源代码编写。[7]其他贡献者有贝尔实验室的开发者,如迈克·维奇(Mike Veach)和帕特·沙利文(Pat Sullivan);他们分别编写了Emacs和vi风格的行编辑模式代码。[8]KornShell向后兼容Bourne shell,同时还根据贝尔实验室用户的需求添加了诸多C shell的功能。
设计
KornShell实现了POSIX.2,同时拥有壳层及实用工具、命令解释器(IEEE Std 1003.2-1992.)。KornShell与传统的Bourne shell的主要差别有:
- 根据C shell所设计的作业控制、命令别名及命令历史特性。作业控制功能于1989年才添加至Bourne Shell。[9]
- 提供基于vi、Emacs和XEmacs的三种命令行编辑风格。
- 关联数组及内置的浮点运算操作(仅在ksh93版KornShell中可用)。
- 内置指令的动态可扩展(截至ksh93版本)。
历史
KornShell起初是一款专有软件。2000年,其源代码以AT&T独有的许可发布;但在2005年年初,93q版本使用Eclipse公共许可证发布。由于KornShell起初为私有授权软件,在那时的人们创造了自由开源的替代品(pdksh、mksh、GNU bash及zsh)。 [4]KornShell被收录进了AT&T软件技术(AST)开源软件集。
KornShell的原始版本(ksh88)被当做POSIX.2、壳层及实用工具、命令解释器(IEEE Std 1003.2-1992.)的基础。
部分供应商有时会提供其自己根据老版本ksh88改编的变体,有时还会在其基础上添加扩展。ksh93现仍被作者维护,并通过在其后添加字母的方式命名发布版本;截至2017年1月16日[update]的最新版本为ksh93u+(ksh93u及ksh93t+的更新版);ksh93v仍处于测试阶段(截至2017年1月16日[update])。[10]
作为“桌面版KornShell”(dtksh),ksh93作为通用桌面环境的一部分发布。[11]此版本同时提供了对Motif挂件的壳层级映射。它的目的是成为Tcl/Tk的竞争对手。[12]
原版KornShell(ksh88)成为了AIX第四版的默认壳层,[13][14]但同时也可使用ksh93。[15]
UnixWare 7中既包括ksh88,也包括ksh93。默认的Kornshell版本为ksh93(/usr/bin/ksh),老版本则在/usr/bin/ksh88下可用。[16]UnixWare同时在安装了CDE的情况下提供{{mono|dtksh}。
变体
下列为多个与KornShel相关的软件产品:
- dtksh – ksh93的分支,为CDE的一部分。
- tksh – ksh93的分支,提供对Tk部件工具箱的访问。
- oksh – OpenBSD风味KornShell的Linux版分支,为DeLi Linux的默认壳层。
- mksh – KornShell语言的自由软件实现,为pdksh的分支。其起初为MirOS BSD开发,以宽松的授权条款发布(MirOS许可证)。[6]除了用在BSD上外,此变体还替代了Debian上的pdksh,[17]更是Android的默认壳层。
- SKsh – AmigaOS风味的版本,提供了多个Amiga的特有功能(如ARexx互用性)
- MKS Inc.的MKS Korn shell – 来自用于UNIX的微软Windows服务(SFU)对KornShell语言的专有实现(版本2.0及以下);据大卫·科恩所述,MKS Korn shell与1998年时的Kornshell不完全兼容。[18][19]在SFU版本3.0中,微软使用Interix中的POSIX.2兼容版壳层替换了MKS Korn shell。[20]
- 大卫·科恩的Unix兼容包UWIN中含有KornShell。[21]
另请参阅
参考文献
- ↑ 1.0 1.1 Ron Gomes. Toronto USENIX Conference Schedule (tentative). Newsgroup: net.usenix. Jun 9, 1983.
- ↑ 2.0 2.1 Guy Harris. csh question. Newsgroup: net.flame. Oct 10, 1983.
- ↑ package changes from 2013-05-24 to 2013-06-01. 2015-02-14 [2018-12-10].
- ↑ 4.0 4.1 Archived copy. [2018-12-10].
- ↑ Archived copy. [2010-06-10].
- ↑ 6.0 6.1 MirBSD Korn Shell. Mirbsd.org. [2018-12-10].
- ↑ Korn, David G., ksh - An Extensible High Level Language, Proceedings of the USENIX 1994 Very High Level Languages Symposium (USENIX Association), 1994-10-26 [2015-02-05],
Instead of inventing a new script language, we built a form entry system by modifying the Bourne shell, adding built-in commands as necessary.
- ↑ Bolsky, Morris I.; Korn, David G. Acknowledgements. The KornShell Command and Programming Language. Englewood Cliffs, NJ: Prentice Hall. 1989: xii. ISBN 0-13-516972-0.
- ↑ traditional Bourne shell family / history and development. In-ulm.de. [2018-12-10].
- ↑ This is the AT&T Software Technology ast software download site from AT&T Research. The AT&T AST OpenSource Software Collection provides an overview and Practical Reusable UNIX Software... Github.com. 2018-12-10 [2018-12-10].
- ↑ Bill Rosenblatt; Arnold Robbins. Learning the Korn Shell 2. O'Reilly Media, Inc. 2002: viii–ix. ISBN 978-0-596-00195-7.
- ↑ J. Stephen Pendergrast. Desktop KornShell graphical programming. Addison-Wesley. 1995: 359. ISBN 978-0-201-63375-7.
- ↑ Casey Cannon; Scott Trent; Carolyn Jones. Simply AIX 4.3. Prentice Hall PTR. 1999: 21. ISBN 978-0-13-021344-0.
- ↑ IBM Knowledge Center. Ibm.com. [2018-12-10].
- ↑ IBM Knowledge Center. Ibm.com. [2018-12-10].
- ↑ UNIX95 conformance. Uw714doc.sco.com. [2018-12-10].
- ↑ Archived copy. [2014-07-28].
- ↑ David Korn Tells All. Slashdot. [2009-10-22].
- ↑ Jerry Feldman — USENIX NT/LISA NT conference attendee. Lists.blu.org. [2009-10-22].
- ↑ Windows Services for UNIX Version 3.0. Technet.microsoft.com. [2009-10-22].
- ↑ Anatole Olczak. The Korn shell: Unix and Linux programming manual. Addison-Wesley Professional. 2001: 4. ISBN 978-0-201-67523-8.
延伸阅读
- Morris I. Bolsky; David G. Korn. The new KornShell command and programming language. Prentice Hall PTR. 1995. ISBN 978-0-13-182700-4.
- David G. Korn, Charles J. Northrup and Jeffery Korn The New KornShell—ksh93 , Linux Journal, Issue 27, July 1996
外部链接
- Korn shell主页(AT&T ksh)
- AT&T软件技术的(AST)GitHub页 ,其中有ksh源代码。
- KSH官方邮件列表 (ast-developers及ast-users)
- ksh93 man page. [2006-08-11].
- ksh88 man page. [2019-05-04].
- Public Domain Korn shell (pdksh)
- MirBSD Korn Shell(mksh)
- MirOS BSD i386通用命令(General Commands)手册页 –