3.3.2 Shell类型
同Linux本身一样,Shell也有多种不同的版本。每个Linux系统的用户可以拥有自己的用户界面或Shell,用以满足自己专门的Shell需要。Linux中的Shell有多种类型,其中最常用的几种是Bourne Shell(sh)、C Shell(csh)和Korn Shell(ksh)。
Bourne Shell是UNIX最初使用的Shell,并且在每种UNIX上都可以使用。Bourne Shell在Shell编程方面相当优秀,但在处理与用户的交互方面做得不如其他几种Shell。Linux操作系统默认的Shell是Bourne Again Shell,它是Bourne Shell的扩展,简称Bash,与Bourne Shell完全向后兼容,并且在Bourne Shell的基础上增加、增强了很多特性。Bash放在/bin/bash中,它有许多特色,可以提供如命令补全、命令编辑和命令历史表等功能,它还包含了很多C Shell和Korn Shell中的优点,有灵活和强大的编程接口,同时又有很友好的用户界面。
C Shell是一种比Bourne Shell更适于编程的Shell,它的语法与C语言很相似。Linux为喜欢使用C Shell的人提供了Tcsh。Tcsh是C Shell的一个扩展版本。Tcsh包括命令行编辑、可编程单词补全、拼写校正、历史命令替换、作业控制和类似C语言的语法,它不仅和Bash Shell提示符兼容,而且还提供比Bash Shell更多的提示符参数。
Korn Shell集合了C Shell和Bourne Shell的优点并且和Bourne Shell完全兼容。Linux系统提供了pdksh(ksh的扩展),它支持任务控制,可以在命令行上挂起、后台执行、唤醒或终止程序。
【例3.1】查看查看当前Linux中含有哪些版本的Shell的命令。
【例3.2】查看Linux当前正在使用的Shell类型命令。
$SHELL是一个环境变量,它记录了Linux当前用户所使用的Shell类型。用户可以通过输入各种Shell的文件名来进入到该Shell下。例如,进入到csh可以输入:
# /bin/csh
这个命令为用户又启动了一个Shell,这个Shell在最初登录的那个Shell之后,成为下级的Shell或者子Shell。使用命令exit可以退出这个子Shell。由于Bash是Linux上默认的Shell,本章主要介绍Bash及其相关知识。