KornShell
原作者 | 大衛·科恩 |
---|---|
首次發佈 | 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 [Dec 29, 2010]. (原始內容存檔於2013-06-02).
- ^ 2.0 2.1 Guy Harris. csh question. Newsgroup: net.flame. Oct 10, 1983 [Dec 29, 2010]. (原始內容存檔於2013-06-02).
- ^ package changes from 2013-05-24 to 2013-06-01. 14 February 2015 [10 December 2018]. (原始內容存檔於2015-02-14).
- ^ 4.0 4.1 Archived copy. [2018-12-10]. (原始內容存檔於2018-11-14).
- ^ Archived copy. [2010-06-10]. (原始內容存檔於2016-03-30).
- ^ 6.0 6.1 MirBSD Korn Shell. Mirbsd.org. [10 December 2018]. (原始內容存檔於2015-08-01).
- ^ Korn, David G., ksh - An Extensible High Level Language, 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.
- ^ 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. [10 December 2018]. (原始內容存檔於2020-04-14).
- ^ 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. 10 December 2018 [10 December 2018]. (原始內容存檔於2020-10-31).
- ^ Bill Rosenblatt; Arnold Robbins. Learning the Korn Shell 2. O'Reilly Media, Inc. 2002: viii–ix [2019-05-04]. ISBN 978-0-596-00195-7. (原始內容存檔於2020-08-04).
- ^ J. Stephen Pendergrast. Desktop KornShell graphical programming. Addison-Wesley. 1995: 359 [2019-05-04]. ISBN 978-0-201-63375-7. (原始內容存檔於2020-08-04).
- ^ 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. [10 December 2018]. (原始內容存檔於2019-08-09).
- ^ IBM Knowledge Center. Ibm.com. [10 December 2018]. (原始內容存檔於2019-08-09).
- ^ UNIX95 conformance. Uw714doc.sco.com. [10 December 2018]. (原始內容存檔於2020-08-02).
- ^ Archived copy. [2014-07-28]. (原始內容存檔於2014-07-28).
- ^ David Korn Tells All. Slashdot. [2009-10-22]. (原始內容存檔於2009-06-16).
- ^ Jerry Feldman — USENIX NT/LISA NT conference attendee. Lists.blu.org. [2009-10-22]. (原始內容存檔於2012-02-26).
- ^ Windows Services for UNIX Version 3.0. Technet.microsoft.com. [2009-10-22]. (原始內容存檔於2017-08-26).
- ^ Anatole Olczak. The Korn shell: Unix and Linux programming manual. Addison-Wesley Professional. 2001: 4 [2019-05-04]. ISBN 978-0-201-67523-8. (原始內容存檔於2020-08-04).
延伸閱讀
[編輯]- 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]. (原始內容存檔於2013-06-05).
- ksh88 man page. [2019-05-04]. (原始內容存檔於2015-11-05).
- Public Domain Korn shell (pdksh)
- MirBSD Korn Shell(mksh)(頁面存檔備份,存於互聯網檔案館)
- MirOS BSD i386通用命令(General Commands)手冊頁 –