Shell俗称壳(用来区别于核),是指“提供使用者使用界面”的软件(命令解析器)它类似于DOS下的command.com。它接收用户命令,然后调用相应的应用程序。同时它又是一种程序设计语言。作为命令语言,它交互式解释和执行用户输入的命令或者自动地解释和执行预先设定好的一连串的命令;作为程序设计语言,它定义了各种变量和参数,并提供了许多在高阶语言中才具有的控制结构,包括循环和分支。在C++中,Shell是希尔排序的名称。

       基本上shell分两大类:

  一:图形界面shell(Graphical User Interface shell 即 GUI shell)
  例如:应用最为广泛的 Windows Explorer (微软的windows系列制作系统),还有也包括广为人知的 Linux shell,其中linux shell 包括 X window manger (BlackBox和FluxBox),以及功能更强大的CDE、GNOME、KDE、 XFCE。
  二:命令行式shell(Command Line Interface shell ,即CLI shell)
  例如:
  bash / sh / ksh / csh(Unix/linux 系统)
  COMMAND.COM(MS-DOS系统)
  cmd.exe/ 命令提示字符(Windows NT 系统)
  Windows PowerShell(支援 .NET Framework 技术的 Windows NT 系统)
  传统意义上的shell指的是命令行式的shell。
  文字操作系统与外部最主要的接口就叫做shell。shell是操作系统最外面的一层。shell管理你与操作系统之间的交互:等待你输入,向操作系统解释你的输入,并且处理各种各样的操作系统的输出结果。
  shell提供了你与操作系统之间通讯的方式。这种通讯可以以交互方式(从键盘输入,并且可以立即得到响应),或者以shell script(非交互)方式执行。shell script是放在文件中的一串shell和操作系统命令,它们可以被重复使用。本质上,shell script是命令行命令简单的组合到一个文件里面。
  Shell基本上是一个命令解释器,类似于DOS下的command.com。它接收用户命令(如ls等),然后调用相应的应用程序。较为通用的shell有标准的Bourne shell (sh)和C shell (csh)。

  Bourne shell ( sh)

  Korn shell ( ksh)
  Bourne Again shell ( bash)
  POSIX shell ( sh)
  C shell ( csh)
  TENEX/TOPS C shell ( tcsh)

       C shell主要是为了让用户更容易的使用交互式功能,并把ALGOL风格的语法结构变成了C语言风格。

       Bourne shell用来编程,C shell用来交互。为了改变这种状况,Korn shell ( ksh) 结合了所有的C shell的交互式特性,并融入了Bourne shell的语法。