-{zh-hans:;zh-hant:殼層}-(-{zh-hans:也称为壳层;zh-hant:}-)在電腦科學中指「為使用者提供使用者介面」的軟體,通常指的是命令行界面的解析器。一般來說,這個詞是指作業系統中提供存取内核所提供之服務的程式。Shell也用于泛指所有为用户提供操作界面的程序,也就是程序和用户交互的層面。因此与之相对的是内核(),内核不提供和用户的交互功能。
不過這個詞也拿來指應用軟體,或是任何在特定元件外圍的軟體,例如瀏覽器或電子郵件軟體是HTML排版引擎的Shell。Shell這個詞是來自於作業系統(核心)與使用者介面的外層介面。
通常將shell分為兩類:命令列與圖形介面。命令列殼層提供一個命令行界面(CLI);而圖形殼層提供一個圖形使用者介面(GUI)。
歷史
殼層(shell)這個說法起源於路易斯·普贊(Louis Pouzin),在1964年至1965年間首次提出,隨後在Multics(MULTiplexed Information and Computing System)計畫中首次被實作出來。
Unix上的第一個Unix殼層(Unix shell)是肯·湯普遜(Ken Thompson)以Multics上的shell為範本,所寫出的Thompson shell。
微软的Windows操作系统也提供了命令行殼層的功能,它们是Windows 95 / 98下的command.com、Windows NT内核下的cmd.exe以及PowerShell;而图形界面壳层即为explorer.exe。
殼層列表
图形用户界面(GUI)殼層
GUI通常會建構在視窗系統上。
- AmigaOS環境:
** Workbench(從AmigaOS 2.0之後增加了GUI殼)
** Ambient(MorphOS)
** Directory Opus
** ScalOS
** Wanderer(AROS.)
*
- Macintosh Finder
- Microsoft Windows環境:
** Aston shell
** BB4Win
** Emerge Desktop
** Geoshell
** Litestep
**
** Secure Desktop
** SharpE
** Windows Explorer
** UserShell
- X Window System環境或Wayland环境(主要用於類Unix作業系統):
** 獨立的X窗口管理器,例如Blackbox與Fluxbox
** 依靠窗口管理器的完整桌面環境,例如:
*** CDE
*** GNOME
*** Unity(以GNOME作核心)
*** KDE
*** XFCE
命令行界面(CLI)殼層
Unix或類似作業系統下的殼層
常見或歷史上知名的Unix殼層有:
- Bourne shell(sh) /[http://linux.die.net/man/1/sh 'man sh'] /
* Almquist shell(ash) /[http://linux.die.net/man/1/ash 'man ash'] */
** Debian Almquist shell(dash) /[http://linux.die.net/man/1/dash 'man dash'] */
* Bourne-Again shell(bash) /[http://linux.die.net/man/1/bash 'man bash'] */
* Korn shell(ksh) /[http://linux.die.net/man/1/ksh 'man ksh'] */
* Z shell(zsh) /[http://linux.die.net/man/1/zsh 'man zsh'] */
- C shell(csh) /[http://linux.die.net/man/1/csh 'man csh'] /
* TENEX C shell(tcsh) /[http://linux.die.net/man/1/tcsh 'man tcsh'] */
- EMACS shell (eshell)
- Es shell(es)
- esh (Unix) – Easy Shell
- friendly interactive shell(fish) /[http://linux.die.net/man/1/fish 'man fish'] /
- rc shell(rc)– shell for Plan 9 from Bell Labs and Unix
- scsh(Scheme Shell)
- Stand-alone Shell(sash)
- BeanShell([http://www.beanshell.org/manual/bshmanual.html#BeanShell_Commands_Documentation bsh] ,[http://www.beanshell.org/download.html bsh.Interpreter , bsh.Console] ) /[http://manpages.ubuntu.com/manpages/karmic/en/man1/bsh.1.html 'man bsh']/
- Rhino [http://www.mozilla.org/rhino/shell.html JavaScript殼層] ([http://www.mozilla.org/rhino/download.html org.mozilla.javascript.tools.shell.Main] ) /[https://web.archive.org/web/20140524084511/http://manpages.ubuntu.com/manpages/karmic/man1/rhino.1.html 'man rhino']/
以及linux系統上的:[http://linux.die.net/man/5/shells '/etc/shells']
非Unix作業系統的殼層
- , 4OS2, – JP Software公司可在在DOS, OS/2,及Windows NT下使用的殼層。程式則是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的指令處理器
參考文獻
外部連結
- [http://technet.microsoft.com/zh-tw/library/cc737438(WS.10).aspx 命令殼層概觀,Microsoft Technet]
- [https://web.archive.org/web/20130820203444/http://software-carpentry.org/v4/shell/intro.html The Unix Shell: Introduction]
參見
- 電腦殼的比較
- 外殼帳號(Shell Account)
- 外壳脚本(Shell Script)
- 批次檔
- Unix shell
- DOS殼
- Internet Explorer殼
评论 (0)