11.1.2 Shell的历史
Bourne Shell是第一个重要的Shell,发布于1977年,作为UNIX 7的默认Shell,在系统中的位置是binsh。目前大多数的UNIX和Linux系统还保留着这个binsh,或者将其连接到其他Shell上,比如RedHat和CentOS就是将这个文件作为一个连接文件连接到Bash Shell上:
- [root@localhost ~]# ls -l binsh
- lrwxrwxrwx 1 root root 4 Feb 26 21:14 binsh -> bash
由于Bourne Shell一直没有正式的版本号,而且由于交互性不够友好等原因,导致了后来C Shell的出现。C Shell诞生于20世纪70年代,由当时加州大学伯克利分校的一名学生编写。该Shell以其语法和C类似而得名,它有着良好的交互性和较快的执行速度。但是缺点是不支持正则表达式,所以一直也没能被UNIX广泛使用,所以没有大范围的流行。
20世纪80年代初出现了Korn Shell,它不但向后兼容Bourne Shell,同时又汲取C Shell的优点,早期版本为ksh88,后来又发布了ksh93版本,成为AIX4上的默认Shell。
20世纪80年代末出现了Bash Shell,其完全兼容Bourne Shell,而且意图也非常明显:就是要代替Bourne Shell。首次发布于1989年,并作为GNU项目免费公布使用,后广泛应用于各类UNIX和Linux发行版中。实际上,Bash是Bourne Again Shell的简称,不过,它在兼容Bourne Shell的同时又加入了很多新功能,并从其他Shell中借用了不少好的功能,可以说是众多Shell的集大成者。目前最新的版本是由GNU于2011年公布的Bash 4.2,但是本文将以3.2版本为主来进行讲解,因为这是目前大多数的Linux发行版使用的版本。
- #RedHat5.5
- 使用的bash
- 版本为3.2
- [root@localhost ~]# bash --version
- GNU bash, version 3.2.25(1)-release (i686-redhat-linux-gnu)
- Copyright (C) 2005 Free Software Foundation, Inc.