殼層
访问操作系统内核服务的用户界面
殼層(英語:Shell)在電腦科學中指「為使用者提供使用者介面」的軟體,通常指的是命令行界面的解析器。一般來說,這個詞是指作業系統中提供存取內核所提供之服務的程式。Shell也用於泛指所有為用戶提供操作界面的程序,也就是程序和用戶交互的層面。因此與之相對的是內核(英語:Kernel),內核不提供和用戶的交互功能。
「殼層」的各地常用名稱 | |
---|---|
中國大陸 | shell,殼層,外殼 |
臺灣 | shell,殼層 |
不過這個詞也拿來指應用軟體,或是任何在特定元件外圍的軟體,例如瀏覽器或電子郵件軟體是HTML排版引擎的Shell。Shell這個詞是來自於作業系統(核心)與使用者介面的外層介面。
通常將shell分為兩類:命令列與圖形介面。命令列殼層提供一個命令行界面(CLI);而圖形殼層提供一個圖形使用者介面(GUI)。
歷史
殼層(shell)這個說法起源於路易斯·普贊(Louis Pouzin),在1964年至1965年間首次提出,隨後在Multics(MULTiplexed Information and Computing System)計畫中首次被實作出來。[1]
Unix上的第一個Unix殼層(Unix shell)是肯·湯普遜(Ken Thompson)以Multics上的shell為範本,所寫出的Thompson shell。[2][3]
微軟的Windows操作系統也提供了命令行殼層的功能,它們是Windows 95 / 98下的command.com、Windows NT內核下的cmd.exe以及PowerShell;而圖形界面殼層即為explorer.exe。
殼層列表
圖形用戶界面(GUI)殼層
- X Window System環境或Wayland環境(主要用於類Unix作業系統):
命令行界面(CLI)殼層
Unix或類似作業系統下的殼層
常見或歷史上知名的Unix殼層有:
- Bourne shell(sh) /*'man sh' (頁面存檔備份,存於網際網路檔案館)*/
- Almquist shell(ash) /*'man ash' (頁面存檔備份,存於網際網路檔案館)*/
- Debian Almquist shell(dash) /*'man dash' (頁面存檔備份,存於網際網路檔案館)*/
- Bourne-Again shell(bash) /*'man bash' (頁面存檔備份,存於網際網路檔案館)*/
- Korn shell(ksh) /*'man ksh' (頁面存檔備份,存於網際網路檔案館)*/
- Z shell(zsh) /*'man zsh' (頁面存檔備份,存於網際網路檔案館)*/
- Almquist shell(ash) /*'man ash' (頁面存檔備份,存於網際網路檔案館)*/
- C shell(csh) /*'man csh' (頁面存檔備份,存於網際網路檔案館)*/
- TENEX C shell(tcsh) /*'man tcsh' (頁面存檔備份,存於網際網路檔案館)*/
- EMACS shell (eshell)
- Es shell(es)
- esh (Unix) – Easy Shell
- friendly interactive shell(fish) /*'man fish' (頁面存檔備份,存於網際網路檔案館)*/
- rc shell(rc)– shell for Plan 9 from Bell Labs and Unix
- scsh(Scheme Shell)
- Stand-alone Shell(sash)
- BeanShell(bsh (頁面存檔備份,存於網際網路檔案館),bsh.Interpreter , bsh.Console (頁面存檔備份,存於網際網路檔案館)) /*'man bsh'[永久失效連結]*/
- Rhino JavaScript殼層 (頁面存檔備份,存於網際網路檔案館)(org.mozilla.javascript.tools.shell.Main (頁面存檔備份,存於網際網路檔案館)) /*'man rhino'*/
以及linux系統上的:'/etc/shells' (頁面存檔備份,存於網際網路檔案館)
非Unix作業系統的殼層
- 4DOS, 4OS2, 4NT – JP Software公司可在在DOS, OS/2,及Windows NT下使用的殼層。Take Command程式則是GUI方式的相容程式。
- Amiga CLI/Amiga殼層是稱為Workbench的AmigaOS圖形介面的另一選擇。
- BASIC-PLUS – RSTS/E
- Beemos(BEEMos)–在Windows XP上執行的一個小型專案,提供設定、應用程式等功能,感覺起來像是在另一個作業系統下。
- CANDE MCS– MCP作業系統的指令行殼曾與文字編輯器
- CCP – CP/M作業系統的主控台指令處理器
- cmd.exe –基於OS/2、Windows CE、Windows NT系列作業系統的命令提示字元殼層
- COMMAND.COM – DOS的殼層
- Commodore DOS Wedge – Commodore 64上BASIC 2.0的延伸功能,包括常用磁碟操作的簡略指令
- DCL – OpenVMS的標準殼層,衍生自早期的迪吉多(DEC)作業系統
- DDT – 迪吉多(DEC)PDP-10 偵錯工具,麻省理工學院Incompatible Timesharing System的指令殼層
- DROS – 智能手機上基於Java ME平台的類DOS殼層
- EFI-SHELL –可擴展韌體介面(Extensible Firmware Interface,EFI)指令殼層,它是開放原始碼的
- Google Shell –基於瀏覽器的Google Search前端介面
- iSeries QSHELL – IBM OS/400上的Unix風格殼層
- Macintosh Programmer's Workshop –古典Mac OS軟體開發用的老式指令行環境
- Microsoft BASIC –一些古老8位元電腦上的主要作業環境
- Rexx – IBM的腳本語言(scripting language)
- Singularity shell – Singularity的標準殼層
- Windows PowerShell –命令提示字元的新一代物件導向後繼者(舊稱Monad或Microsoft Shell (MSH))
- Windows修復主控台– Windows 2000、Windows XP、Windows 2003作業系統的一項功能
- YouShell –用於YouOS,基於JavaScript的指令處理器
參考文獻
外部連結
參見
- 電腦殼的比較
- 殼帳號(Shell Account)
- 殼腳本(Shell Script)
- 批次檔
- Unix shell
- DOS殼
- Internet Explorer殼