目录
传统意义上的shell指的是命令行式的shell。在本文中,如果没有特别声明,shell指的是命令行式的shell,而非GUI shell/桌面环境。
1. bourne shell(sh)
Stephen Bourne于1977年在AT&T的贝尔实验室为V7 UNIX开发了bourne shell,这是首个重要的标准unix shell,是其他shell类型的基础。sh的一个重要特点是它的可移植性很强,可以在多种不同的unix系统上运行。
2. c shell(csh)
sh的改进版,是由UCB的Bill Joy在1979年开发的,主要是为了让用户更容易的使用交互式功能,并把ALGOL风格的语法结构变成了C语言风格。
3. tenex/tops c shell(tcsh)
csh的增强版,由 Ken Greer于1979年在卡内基梅隆大学开发。具有文件名/命令补全、命令行编辑、可编程字符集、历史纪录、作业控制等功能。
4. korn shell(ksh)
完全兼容sh。由AT&T的David korn在20世纪80年代早期开发而成,并于1983年7月14日在USENIX发表。除了对sh具有良好兼容性外,korn shell还包含了一些来自其他shell的特性,如c shell的命令历史等。
5. bourne again shell(bash)
sh的增强版,作者Brian Fox于1989年发布了第一个正式版本。bash最初是为GNU的计划而编写的,bash能够运行于大多数类Unix操作系统上,许多linux发行版本都将bash作为默认的shell种类。
6. Z shell(zsh)
Sh的一个扩展版本,经过大量改进后,引入了bash、ksh和tcsh的新特性。Zsh初版由原作者Paul Falstad于1990年在普林斯顿大学求学时编写,其名称zsh源于普林斯顿大学助教的邵中(Zhong Shao,现任耶鲁大学教授),Paul将邵中的用户名"zsh"作为此Shell的名称。