2006年11月24日星期五

1.3.History of UNIX Shells

1.3. History of UNIX Shells

UNIX的历史上,相对于操作系统独立的shell本身也发展出来很多shell,但是只有很少的几个被普遍应用。

第一个卓越的shellBourne shell(以其发明人命名:Steven Bourne),它从1979年开始包含于第一个主流UNIX发行版的版本7中。Steven Bourne最出名的是系统中的sh。尽管UNIX从头到尾有了很多很多的变化,但是Steven Bourne依然流行并且本质也未有多少改变。很多UNIX的工具和管理功能都依赖于此。

第一个广泛使用的shellC shell(csh)。它是Bill Joy为加州大学柏克利分校软件(BSD)的UNIX 7版本后所写的。

C shell的名称便可知他的命令操作类似于C语言,是程序员更容易入手学习UNIX系统。它支持很多操作系统特性(譬如:job control; see Chapter 8)且专为BSD UNIX设计,但是它被移植现在的各种UNIX版本中。它也有很多重要的特征(e.g., aliases; see Chapter 3)使其更贴切与普通用户的使用。

最近几年很多其他的shell开始流行。最著名的是Korn shell。它在商业发行版中结合了BourneC shell中最好特点,并加上其他许多它自己的特点。[1] Korn shellbash有很多的相似,都拥有很多的特性使应用更加方便。Bash的特点是它是免费的。Korn shell的其它相关材料请参考Appendix A.

[1] Korn shell 可以随意下载,但是它附带一个许可证表明在某些地方使用是需要付费的。

1.3.1. Bourne Again Shell

Bourne Again shell(以再次感激Steve Bourne命名)创建于GNU组织。[2] GNU组织是由Free Software Foundation (FSF)(免费软件基金会)的Richard Stallman发起,目的是创建统一的UNIX操作系统平台并且替换所有商业发行版UNIX工具且免费发放它们。GNU不仅仅代表新软件,而且引入新的发行方式:copyleftCopylefted软件可以免费分发或进一步分发(譬如:源代码必须免费发送)

[2] GNU 首字母缩写, GNU's 不是 UNIX

Bash,正式“出生”在1988-1-10一个星期日并预定为GNU组织的标准shellBrian Fox写出了第一个bash版本而且一直改进维护它直到1993年。早在1989Chet Ramey加入并负责修改众多缺陷和很多宜用特征。Chet Ramey是现在bash官方的维护者和拓展者。

为了遵守GNU法则,所有从0.99版本的bash都可以从FSF免费获得。bash进入了所有主流UNIX且迅速成为众多Bourne shell派生版中最流行的一个。它也成为Linux(一个广泛使用的免费UNIX操作系统)中的标准shell,甚至是AppleMac OS X也有它的存在。

1995Chet Ramey开始从事发布新版本2.0(于19961223日发布),bash 2.0相对于前一版本(前一版本1.14.7)添加一系列的新特征使其更好的兼容不同的标准。bash 3.0更加强了一些新特征和对标准的支持。

此书描述bash 3.0。它适用于所有前面发布的bash版本。现在版本中的一些特征若是在前些版本不同或是缺少都会在文本中注明。

1.3.2. bash特征

虽然Bourne shell依然被人认为是“标准”shellbash却日益的变得流行起来。除了它继承了Bourne shell的兼容性外,他还包容了很多C shell Korn shell的优秀特点。

bash命令输入行的可编辑模式是最吸引用户的地方。在命令行里可以编辑使人更容易的返回修改和更改前一个命令,比C shell历史纪录机制更好,而Bourne shell却不能使你做所有这一切。

另外主流的bash特征是提供用户进程管理的功能(job control)。在Chapter 8中会解释,进程管理如何提供你在同一时间关闭、运行和暂停任意一个命令。这个特征几乎完全借鉴与C shell

Bash最为重要的优势主要在于体现在它的自定制者和编程者上。他拥有很多选项和变量去定制,且它在开发特征方面也值得注目的提供了function(函数)定义,更多的控制特性,整数算法和高级的I/O控制,等等。

没有评论: