KornShell

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

KornShell
原作者大卫·科恩
首次发布1983[1][2]
编程语言C
操作系统Unix
语言英语
类型Unix shell
许可协议
  • AT&T KornShell:Eclipse公共许可证[3]
  • pdksh公有领域,含部分类ISC代码[4]
  • mkshMirOS许可证[5]
  • dtksh:Eclipse公共许可证,部分使用LGPL
网站www.kornshell.org

设计

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

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

历史

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

KornShell起初是一款专有软件。2000年,其源代码以AT&T独有的许可发布;但在2005年年初,93q版本使用Eclipse公共许可证发布。由于KornShell起初为私有授权软件,在那时的人们创造了自由开源的替代品(pdkshmkshGNU bashzsh)。 [3]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))。[9]

作为“桌面版KornShell”(dtksh),ksh93作为通用桌面环境的一部分发布。[10]此版本同时提供了对Motif挂件的壳层级映射。它的目的是成为Tcl/Tk的竞争对手。[11]

原版KornShell(ksh88)成为了AIX第四版的默认壳层,[12][13]但同时也可使用ksh93。[14]

UnixWare 7中既包括ksh88,也包括ksh93。默认的Kornshell版本为ksh93/usr/bin/ksh),老版本则在/usr/bin/ksh88下可用。[15]UnixWare同时在安装了CDE的情况下提供{{mono|dtksh}。

变体

下列为多个与KornShel相关的软件产品:

  • dtksh ksh93的分支,为CDE的一部分。
  • tksh ksh93的分支,提供对Tk部件工具箱的访问。
  • oksh OpenBSD风味KornShell的Linux版分支,为DeLi Linux的默认壳层。
  • mksh – KornShell语言的自由软件实现,为pdksh的分支。其起初为MirOS BSD开发,以宽松的授权条款发布(MirOS许可证)。[5]除了用在BSD上外,此变体还替代了Debian上的pdksh[16]更是Android的默认壳层。
  • SKsh AmigaOS风味的版本,提供了多个Amiga的特有功能(如ARexx互用性)
  • MKS Inc.的MKS Korn shell – 来自用于UNIX的微软Windows服务(SFU)对KornShell语言的专有实现(版本2.0及以下);据大卫·科恩所述,MKS Korn shell与1998年时的Kornshell不完全兼容。[17][18]在SFU版本3.0中,微软使用Interix中的POSIX.2兼容版壳层替换了MKS Korn shell。[19]
  • 大卫·科恩的Unix兼容包UWIN中含有KornShell。[20]

另请参阅

  • 计算机壳层对比
  • Unix实用程序列表
  • 测试软件

参考文献

  1. Ron Gomes. . Newsgroup: net.usenix. Jun 9, 1983 [Dec 29, 2010]. (原始内容存档于2013-06-02).
  2. Guy Harris. . Newsgroup: net.flame. Oct 10, 1983 [Dec 29, 2010]. (原始内容存档于2013-06-02).
  3. . [2018-12-10]. (原始内容存档于2018-11-14).
  4. . Mirbsd.org. [10 December 2018]. (原始内容存档于2015-08-01).
  5. Korn, David G., , Proceedings of the USENIX 1994 Very High Level Languages Symposium (USENIX Association), October 26, 1994 [February 5, 2015], (原始内容存档于2020-08-23), Instead of inventing a new script language, we built a form entry system by modifying the Bourne shell, adding built-in commands as necessary.
  6. Bolsky, Morris I.; Korn, David G. . . Englewood Cliffs, NJ: Prentice Hall. 1989: xii. ISBN 0-13-516972-0.
  7. . In-ulm.de. [10 December 2018]. (原始内容存档于2020-04-14).
  8. . Github.com. 10 December 2018 [10 December 2018]. (原始内容存档于2020-10-31).
  9. Bill Rosenblatt; Arnold Robbins. 2. O'Reilly Media, Inc. 2002: viii–ix [2019-05-04]. ISBN 978-0-596-00195-7. (原始内容存档于2020-08-04).
  10. J. Stephen Pendergrast. . Addison-Wesley. 1995: 359 [2019-05-04]. ISBN 978-0-201-63375-7. (原始内容存档于2020-08-04).
  11. Casey Cannon; Scott Trent; Carolyn Jones. . Prentice Hall PTR. 1999: 21. ISBN 978-0-13-021344-0.
  12. . Ibm.com. [10 December 2018]. (原始内容存档于2019-08-09).
  13. . Ibm.com. [10 December 2018]. (原始内容存档于2019-08-09).
  14. . Uw714doc.sco.com. [10 December 2018]. (原始内容存档于2020-08-02).
  15. . [2014-07-28]. (原始内容存档于2014-07-28).
  16. . Slashdot. [2009-10-22]. (原始内容存档于2009-06-16).
  17. . Lists.blu.org. [2009-10-22]. (原始内容存档于2012-02-26).
  18. . Technet.microsoft.com. [2009-10-22]. (原始内容存档于2017-08-26).
  19. Anatole Olczak. . Addison-Wesley Professional. 2001: 4 [2019-05-04]. ISBN 978-0-201-67523-8. (原始内容存档于2020-08-04).

延伸阅读

  • Morris I. Bolsky; David G. Korn. . Prentice Hall PTR. 1995. ISBN 978-0-13-182700-4.
  • David G. Korn, Charles J. Northrup and Jeffery Korn The New KornShellksh93 页面存档备份,存于, Linux Journal, Issue 27, July 1996

外部链接

This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.