1.5.2 常见 Shell 的种类
Linux Shell的种类很多,目前流行的Shell包括ash、bash、ksh、csh、zsh等,用户可以通过查看/etc/shells 文件中的内容来查看自己主机中当前有哪些种类的Shell,命令如下(下面是在笔者Linux 主机中查看信息的结果):
- # cat /etc/shells
- /bin/sh
- /bin/bash
- /sbin/nologin
- /bin/bash2
- /bin/ash
- /bin/bsh
- /bin/tcsh
- /bin/csh
使用下面的命令来查看Linux 当前正在使用的Shell 类型:
- # echo $SHELL
$SHELL是一个环境变量,它记录了Linux 当前用户所使用的Shell类型。用户可以通过直接输入各种Shell的二进制文件名(因为这些二进制文件本身是可以被执行的),来进入到该Shell下,比如进入csh可以直接输入:
- # /bin/csh
这个命令为用户又启动了一个Shell,这个Shell在最初登录的那个Shell之后,称为下级的Shell或子Shell。使用命令:
- # exit
可以退出这个子Shell。使用不同的Shell 的原因在于它们各自都有自己不同的特点,下面简单介绍Linux 下各种不同的Shell类型的特点。
1. ash
ash Shell是由Kenneth Almquist编写的,是Linux 中占用系统资源最少的一个小Shell,它只包含24个内部命令,因而使用起来很不方便。
2. bash
bash是Linux系统默认使用的Shell,它由Brian Fox 和Chet Ramey共同完成,是BourneAgain Shell的缩写,内部命令一共有40 个。Linux 使用它作为默认的Shell是因为它具有以下特色:
可以使用类似DOS下面的doskey的功能,用上下方向键查阅和快速输入并修改命令。
自动通过查找匹配的方式,给出以某字串开头的命令。
包含了自身的帮助功能,你只要在提示符下面键入help就可以得到相关的帮助信息。
3. ksh
ksh是Korn Shell的缩写,由Eric Gisin编写,共有42 条内部命令。该Shell最大的优点是几乎和商业发行版的ksh 完全相容,这样就可以在不用花钱购买商业版本的情况下尝试商业版本的性能了。
4. csh
csh 是Linux 比较大的内核,它由以William Joy 为代表的共计47 位作者编成,共有52个内部命令。该Shell其实是指向/bin/tcsh这样的一个Shell,也就是说,csh其实就是tcsh。
5. zch
zch是Linux 最大的Shell之一,由Paul Falstad完成,共有84 个内部命令。如果只是一般的用途,没有必要安装这样的Shell。