学习linux Shell脚本编程时,你可能会遇到Shell分类的问题,这里将介绍Shell的几种分类,经过仔细整理,在这里拿出来和大家分享一下。
在UNIX/linux Shell中主要有这几类shell:
◆Bourne shell (bsh)
◆C shell ( csh)
◆Korn shell ( ksh)
◆Bourne Again shell ( bash)
◆POSIX shell ( sh)
◆TENEX/TOPS C shell ( tcsh)
◆TC Shell(tesh)
◆Z Shell(zsh)
◆Bourne Shell
首个重要的标准Unix Shell是1970年底在V7 Unix(AT&T第7版)中引入的,并且以它的创始科技部基础条件平台“国家气象网络计算应用节点建设”(2004DKA50730)资助者 Stephen Bourne的名字命名。Bourne Shell作为 编程语言是基于Algol语言的,而且主要用于系统管理任务自动化。虽然它由于简单而迅速流行,但缺乏交互式使用的许多特性,如历史、别名和作业控制。
◆C Shell
20世纪70年代末,在加利福尼亚大学Berkeley 研制的C Shell是作为BSD Unix的一部分发布的。 这种主要由Bill Joy所写的Shell提供了许多标准 Bourne Shell里不提供的附加特征。linux Shell中的C Shell是基于 C编程语言的,而且当用做编程语言时,它使用类似 C语言的语法。它也提供交互使用的增强功能,如命令行历史、别名和作业控制。因为这种Shell是在大型机上设计的,而且加入了大量附加的特征,所以跟linux Shell中的Bourne Shell相比,C Shell在小型机上有运行缓慢的趋势,甚至在大型机上也运行缓慢。
◆Korn Shell
由于Bo urne Shell和C Shell都可使用,所以现在Unix用户有了选择余地,同时也在选择Shell的问题上产生了困扰。来自AT&T的David Korn于20世纪80年代中期开发了Korn Shell,发布于1996年,并且在1998年正式成为Unix的SVR4分支的组成部分。其实linux Shell中的Bourne Shell的超集Korn Shell,不仅能在Unix系统上运行,而且能在OS/2、VMS和DOS上运行。它提供与Bourne Shell的向上兼容性,增加了许多C Shell的受欢迎的特征,而且快捷有效。AIX使用的是最为广泛使用的1998年版本的Korn Shell。
除了以上提到的3种“标准”Unix Shell外还 有许多其他的Shell也在使用,如:
◆Bourne Again Shell
Bourne Again Shell(bash)是GNU计划的一部分,用来替代Bourne Shell。它用于基于GNU 的系统(如Linux)。大多数Linux(Red Hat、Slaekware、Caldera)都以bash作为缺省的Shell,并且运行sh时,其实调用的是bash。
◆POSIX Shell
POSIX Shell是Korn Shell的一个变种。当前提供POSIX Shell的最大卖主是Hewlett—Packard公司。在HP—UX 11.0版本中,linux Shell中的POSIX Shell就是/bin/sh,而bsh是/usr/old/bin/sh。
◆TC Shell
TC Shell(tesh)是C Shell的扩充版本,并完全兼容C Shell,是那些更喜欢C语法的用户可以选择的bash的替代品。
◆Z Shell
Z Shell(zsh)组合了Bourne Ag ain Shell、TCShell和Korn Shell的许多特点,并吸收了一些新特 点。Zsh与Kom Shell最相像。
各主要操作系统下缺省的shell:
AIX 下是Korn Shell.
Solaris和FreeBSD缺省的是Bourne shell.
HP-UX缺省的是POSIX shell.
Linux是Bourne Again shell.
如何区分操作系统使用的哪种shell:
在登录进入 Unix/linux后,操作系统使用户处于自己的起始目录(home directory)下运行Shell,当前最常用的Shell有sh、esh和ksh,用户很多时候不需要知道或担心使用的是哪种Shell,可以通过观察 Shell提示符来辨别当前使用的是那种,下面是缺 省的提示符,当然也可以很容易被修改:
Bourne Shell使用美元符($);
linux Shell中的C Shell使用百分号(%);
linux Shell中的Korn Shell使用美元符($).