2019年7月22日 星期一

如何选择适合的shell

Unix的shell不下数十种,我们介绍了不同时期重要的Unix shell,包括Bourne shell, Korn shell, FreeBSD shell, Pdksh, Zsh, Bash, C-shell和Tsh。那么,如何选择适合的shell?
为了便于参考,下面示范了这些shell以及相应的程序名称。当运行shelld时,如果系统中存在该shell,那么只需键入这个shell的名称即可,例如:

bash
ksh
tcsh


在一些Unix系统中,个中不同的shell都按照它们各自的名称安装。sh程序不同于kshbash, csh不同于tcsh。因此如果想使用一种老式的Bourne shell,那么您要键入sh;如果想使用Bash,那么您要键入bash。同理,您也可以使用csh(标准的C-shell)或者Tcsh(增强的C-shell)。



shell程序名称
Bashbash或者sh
Bourne Shellsh
C-shellcsh
FreeBSD shellsh
Korn Shellksh或者sh
Pdkshksh
Tcshtcsh或者csh
Zshzsh
Unix shell有许多种,本列表列举了最常见的shell,以及shell对应的实际程序名称。
但是,在一些系统上,比较新的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脚本,那么您应该坚持使用标准的Bourne shell编程语言,以确保脚本能够移植到其他系统上。

下面拓展一下,您知道每种shell有多复杂吗?
度量程序的复杂性的一种粗略方法就是查看,文档资料的长度。下表中列举出了每种shell手册中所含字节的近似数量。为了便于比较,我标准化了各个数字,指定最小的数字为1.0(当然,当新版本的文档资料发布时,这些数字可能会发生变化)。
shell名称说明书页大小相对复杂度
Bourne shell38 000字节1.0
FreeBSD shell57 000字节1.5
C-Shell64 000字节1.7
Korn Shell121 000字节3.2
Tcsh250 000字节6.6
Bash302 000字节7.9
Zsh789 00020.8

从这些数字很容易看出C-Shell和FreeBSD Shell的复杂度,处于较古老的,功能较差的Bourne shell和其他较复杂的shell之间。

但是,文档资料相当重要。越复杂的shell手册,越需要时间取阅读,而且也越难理解。

沒有留言:

張貼留言