殼層

-{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） /*'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' */
 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作業系統的殼層 
 , 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的指令處理器

參考文獻

外部連結 
 命令殼層概觀，Microsoft Technet 
 The Unix Shell: Introduction

參見 

 電腦殼的比較
 殼帳號（Shell Account）
 殼腳本（Shell Script）
 批次檔
 Unix shell
 DOS殼
 Internet Explorer殼

 
桌面环境