壳层

right
-{zh-hans:Shell;zh-hant:壳层}-（-{zh-hans:也称为壳层;zh-hant:Shell}-）在电脑科学中指「为使用者提供使用者介面」的软体，通常指的是命令行界面的解析器。一般来说，这个词是指作业系统中提供存取内核所提供之服务的程式。Shell也用于泛指所有为用户提供操作界面的程序，也就是程序和用户交互的层面。因此与之相对的是内核（Kernel），内核不提供和用户的交互功能。
不过这个词也拿来指应用软体，或是任何在特定元件外围的软体，例如浏览器或电子邮件软体是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.）- DOS Shell- Macintosh Finder- Microsoft Windows环境：
** Aston shell
** BB4Win
** Emerge Desktop
** Geoshell
** Litestep
** Program Manager
** 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' date=20201112021330 */
** Almquist shell（ash） /* 'man ash' date=20210225025218 */
*** Debian Almquist shell（dash） /* 'man dash' date=20210224121139 */
** Bourne-Again shell（bash） /* 'man bash' date=20210413140510 */
** Korn shell（ksh） /* 'man ksh' date=20210227053922 */
** Z shell（zsh） /* 'man zsh' date=20210224043709 */- C shell（csh） /* 'man csh' date=20201013205438 */
** TENEX C shell（tcsh） /* 'man tcsh' date=20210105201527 */- EMACS shell (eshell)- Es shell（es）- esh (Unix) – Easy Shell- friendly interactive shell（fish） /* 'man fish' date=20210224092104 */- rc shell（rc）– shell for Plan 9 from Bell Labs and Unix- scsh（Scheme Shell）- Stand-alone Shell（sash）- BeanShell（ bsh date=20201210230349 ， bsh.Interpreter , bsh.Console date=20201210230355 ） /* 'man bsh'fix-attempted=yes */- Rhino  JavaScript壳层 date=20110103060950 （ org.mozilla.javascript.tools.shell.Main date=20120629082425 ） /* 'man rhino'*/
以及linux系统上的： '/etc/shells' date=20181210213739 

**非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的指令处理器

**参考文献**

**外部连结**
  命令壳层概观，Microsoft Technet date=20101114074356 -  The Unix Shell: Introduction

**参见**
 电脑壳的比较- 外壳帐号（Shell Account）- 外壳脚本（Shell Script）- 批次档- Unix shell- DOS壳- Internet Explorer壳