KornShell

求闻百科,共笔求闻
KornShell
原作者大卫·科恩
首次发布1983[1][2]
稳定版本
ksh93u+
(2013年6月1日,​11年前​(2013-06-01[3]
编程语言C
操作系统Unix
语言英语
类型Unix shell
许可协议
网站www.kornshell.org

KornShellksh)是一款由大卫·科恩于二十世纪八十年代早期在贝尔实验室开发的Unix shell,并在1983年7月14日的USENIX年度技术会议上发布。[1][2]起初此软件基于Bourne shell的源代码编写。[7]其他贡献者有贝尔实验室的开发者,如迈克·维奇(Mike Veach)和帕特·沙利文(Pat Sullivan);他们分别编写了Emacsvi风格的行编辑模式代码。[8]KornShell向后兼容Bourne shell,同时还根据贝尔实验室用户的需求添加了诸多C shell的功能。

设计

KornShell实现了POSIX.2,同时拥有壳层及实用工具、命令解释器(IEEE Std 1003.2-1992.)。KornShell与传统的Bourne shell的主要差别有:

  • 根据C shell所设计的作业控制命令别名命令历史特性。作业控制功能于1989年才添加至Bourne Shell。[9]
  • 提供基于viEmacsXEmacs的三种命令行编辑风格。
  • 关联数组及内置的浮点运算操作(仅在ksh93版KornShell中可用)。
  • 内置指令的动态可扩展(截至ksh93版本)。

历史

OpenBSD默认壳层(pdksh)的交互界面

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

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

部分供应商有时会提供其自己根据老版本ksh88改编的变体,有时还会在其基础上添加扩展。ksh93现仍被作者维护,并通过在其后添加字母的方式命名发布版本;截至2017年1月16日 (2017-01-16)的最新版本为ksh93u+ksh93uksh93t+的更新版);ksh93v仍处于测试阶段(截至2017年1月16日 (2017-01-16))。[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. 1.0 1.1 Ron Gomes. Toronto USENIX Conference Schedule (tentative). Newsgroupnet.usenix. Jun 9, 1983. 
  2. 2.0 2.1 Guy Harris. csh question. Newsgroupnet.flame. Oct 10, 1983. 
  3. package changes from 2013-05-24 to 2013-06-01. 2015-02-14 [2018-12-10]. 
  4. 4.0 4.1 Archived copy. [2018-12-10]. 
  5. 6.0 6.1 MirBSD Korn Shell. Mirbsd.org. [2018-12-10]. 
  6. 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. 
  7. 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. 
  8. traditional Bourne shell family / history and development. In-ulm.de. [2018-12-10]. 
  9. 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]. 
  10. Bill Rosenblatt; Arnold Robbins. Learning the Korn Shell 2. O'Reilly Media, Inc. 2002: viii–ix. ISBN 978-0-596-00195-7. 
  11. J. Stephen Pendergrast. Desktop KornShell graphical programming. Addison-Wesley. 1995: 359. ISBN 978-0-201-63375-7. 
  12. Casey Cannon; Scott Trent; Carolyn Jones. Simply AIX 4.3. Prentice Hall PTR. 1999: 21. ISBN 978-0-13-021344-0. 
  13. IBM Knowledge Center. Ibm.com. [2018-12-10]. 
  14. IBM Knowledge Center. Ibm.com. [2018-12-10]. 
  15. UNIX95 conformance. Uw714doc.sco.com. [2018-12-10]. 
  16. Archived copy. [2014-07-28]. 
  17. David Korn Tells All. Slashdot. [2009-10-22]. 
  18. Jerry Feldman — USENIX NT/LISA NT conference attendee. Lists.blu.org. [2009-10-22]. 
  19. Windows Services for UNIX Version 3.0. Technet.microsoft.com. [2009-10-22]. 
  20. Anatole Olczak. The Korn shell: Unix and Linux programming manual. Addison-Wesley Professional. 2001: 4. ISBN 978-0-201-67523-8. 

延伸阅读

外部链接