为了便于参考,下面示范了这些shell以及相应的程序名称。当运行shelld时,如果系统中存在该shell,那么只需键入这个shell的名称即可,例如:
bash
ksh
tcsh
在一些Unix系统中,个中不同的shell都按照它们各自的名称安装。sh程序不同于ksh或bash, csh不同于tcsh。因此如果想使用一种老式的Bourne shell,那么您要键入sh;如果想使用Bash,那么您要键入bash。同理,您也可以使用csh(标准的C-shell)或者Tcsh(增强的C-shell)。
shell | 程序名称 |
Bash | bash或者sh |
Bourne Shell | sh |
C-shell | csh |
FreeBSD shell | sh |
Korn Shell | ksh或者sh |
Pdksh | ksh |
Tcsh | tcsh或者csh |
Zsh | zsh |
但是,在一些系统上,比较新的shell替代了比较古老的shell,因此无法再找到Bourne shell或者C-shell。此时,如果键入sh,那么得到shell或者是bash,或者是Korn shell;如果键入csh,那么得到的shell是Tcsh。您可以通过查看shell的说明书页来查看系统是不是这种情况。在Linux系统上,请求sh的说明书页,得到是bash的说明书页;如果请求csh的说明书页,得到是tcsh的说明书页。
您可以使用man命令来显示特定shell的说明书页,后面跟合适的程序名称。例如:
man sh
man csh
因为shell非常复杂,所以shell的说明书页实际上就像一个小的手册,其中大多数内容是高级用户的参考资料。
那么,如何选择合适的shell?
如果您是一名初学者,那么使用哪一种shell都无关紧要,因为所有的shell都拥有相同的基本特性。
如果您是一名经验丰富的程序员,各种shell之间的细节就有关系了,需要认真衡量一下。
如果您喜欢跟着潮流,坚持使用系统默认的shell,即键入sh是在您的系统上运行的shell,那么所使用的shell极有可能在Linux中是Bash,在FreeBSD中是Free BSD shell,而在商业Unix系统中是Korn shell。
如果您喜欢新奇,那么有许多shell可以尝试。
如果您喜欢使用那些不熟悉的shell,可以在Internet上搜索Unix shell或者Linux shell,您会发现一些新的shell。
如果您喜欢冒险,但是无法决定使用哪一个,可以试试Zsh。
提示下面拓展一下,您知道每种shell有多复杂吗?
对于日常工作,您可以根据自己的喜好选择任意一种shell,而且还可以自由的修改shell。
但是,如果编写shell脚本,那么您应该坚持使用标准的Bourne shell编程语言,以确保脚本能够移植到其他系统上。
度量程序的复杂性的一种粗略方法就是查看,文档资料的长度。下表中列举出了每种shell手册中所含字节的近似数量。为了便于比较,我标准化了各个数字,指定最小的数字为1.0(当然,当新版本的文档资料发布时,这些数字可能会发生变化)。
shell名称 | 说明书页大小 | 相对复杂度 |
Bourne shell | 38 000字节 | 1.0 |
FreeBSD shell | 57 000字节 | 1.5 |
C-Shell | 64 000字节 | 1.7 |
Korn Shell | 121 000字节 | 3.2 |
Tcsh | 250 000字节 | 6.6 |
Bash | 302 000字节 | 7.9 |
Zsh | 789 000 | 20.8 |
从这些数字很容易看出C-Shell和FreeBSD Shell的复杂度,处于较古老的,功能较差的Bourne shell和其他较复杂的shell之间。
但是,文档资料相当重要。越复杂的shell手册,越需要时间取阅读,而且也越难理解。
沒有留言:
張貼留言