1.2 常用的Shell类型
Shell具有不同的风格,就像UNIX操作系统有不同的风格一样。每种不同的风格都具有各自的命令和功能,最常用的Shell包括Bourne Shell、Bourne Again Shell、C Shell、Korn Shell和Perl Shell等。
注意:本书编程部分所涉及的脚本语言如非特别说明,以流行的Bourne Again Shell为例。
用户可以选择自己喜欢的Shell(在系统管理员为用户创建账号时指定),在/etc/passwd文件最后一个字段中可以看到用户当前使用的Shell的名称。
注意:可以使用grep命令查看/etc/passwd文件,以显示当前登录用户使用的Shell,命令格式如下。
#grep $LOGNAME /etc/passwd root:x:0:0:root:/root:/bin/bash // 以root用户名登录的
1.2.1 Linux默认Shell
Bourne Again Shell(简称Bash)是Linux默认的Shell,也是最流行的一种Shell,各个版本的UNIX和Linux几乎都支持Bash。Bash继承了Bourne Shell的标准并扩充了人机交互的特性。Brian Fox是Bash的创始人,被称为Bash之父。Bash提供命令历史、命令补全、命令编辑等功能。
注意:要启动Bash只需要在命令行键入bash并按回车键即可。
1.2.2 Bourne Shell的扩展版
贝尔实验室的David Korn设计了Korn Shell(简称ksh)。Korn Shell是Bourne Shell的继承和发展,使用Bourne Shell编写的脚本可以不必修改就直接使用Korn Shell运行。同时Korn Shell包含C Shell的特性,具有较强的作业控制能力,如挂起、后台执行、唤醒、终止等,还提供了窗口功能。
1.2.3 网关接口Shell
Perl Shell是另一个比较流行的Linux Shell。Perl(Practical Extraction和Report Language)Shell通常用来编写Web应用程序的通用网关接口(GCI)。
1.2.4 早期Shell
Bourne Shell(简称bsh)是UNIX最初使用的Shell,由Stephen Bourne在1979年创建的,具有简单、编程能力强等特点,但操作使用不够方便,在同用户交互方面不如其他几种Shell强大。
注意:要启动Bourne Shell只需要在命令行键入sh并按回车键即可。
1.2.5 支持后台作业Shell
Bourne Shell不支持在后台运行作业,总是接管屏幕和键盘的控制,因此程序必须一个一个地依次执行,前一程序没执行完毕,后一程序就不能开始运行。
加利福尼亚大学伯克利分校的Bill Joy认识到Bourne Shell的上述不足,决定用C语言中的关键字来设计一种新的Shell——C Shell。C Shell提供方便的用户界面设计,提供命令行编辑、拼写校正、命令历史替换、作业控制等功能。由于C Shell采用C语言风格,因而受到许多C程序员的青睐。C Shell还有一个扩充版本TC Shell。
注意:要启动C Shell只需要在命令行键入csh并按回车键。要启动TC Shell只需要在命令行键入tcsh并按回车键。