首页 百科知识 的主要版本

的主要版本

时间:2022-10-09 百科知识 版权反馈
【摘要】:与其他许多操作系统不同的是,Linux系统提供了很多种版本的Shell,以方便用户根据不同的需要选择使用。常用的shell版本有Bourne Shell、Bourne Again Shell、C Shelll和Korn Shell。Bourne Shell在编程方面相当优秀,但在处理与用户的交互方面不如其他几种Shell。Korn Shell是AT&T Bell实验室的David Korn开发的,它集合了C Shell和Bourne Shell的优点,并且与Bourne Shell向下完全兼容。用户可以根据自己的兴趣和需要选择,所选用的Shell版本不会影响系统普通命令的使用。

10.1.2 Shell的主要版本

与其他许多操作系统不同的是,Linux系统提供了很多种版本的Shell,以方便用户根据不同的需要选择使用。常用的shell版本有Bourne Shell(简称sh)、Bourne Again Shell(简称bash)、C Shelll(简称csh)和Korn Shell(简称ksh)。

(1)Bourne Shell

Bourne Shell是AT&T Bell实验室的 Steven Bourne为AT&T的UNIX开发,它是UNIX的默认Shell,也是其他Shell的开发基础,因此在每种UNIX上都可以使用它。Bourne Shell在编程方面相当优秀,但在处理与用户的交互方面不如其他几种Shell。

(2)Bourne Again Shell

Bourne Again Shell(即bash)是自由软件基金会(GNU)开发的一个Shell,它是Lin ux操作系统中的默认Shell。bash是Bourne Shell的扩展,它不但与Bourne Shell兼容,还继承了C Shell、Korn Shell等版本的优点,并且在Bourne Shell的基础上增加和增强了很多特性,它具有如下特点:

①命令补全功能:在bash下输入命令时不必把命令全部输入,只要输入命令行的一部分然后按下“Tab”键,Bash就会根据用户输入的信息来补全命令。当无法根据现有信息补全命令时,就会听到一声响铃提示用户再给出更多的信息,继续键入字符或字符串,则bash再根据用户的提示来进一步补全命令。在输入短命令时也许看不出它的价值所在,甚至在命令很短时还会减慢输入的速度,但是当要输入的命令比较长时,就会发现这个特性是非常有用的。

②命令历史记录:bash保留了一定数目先前已经在Shell中使用过的命令。使用命令历史记录的最简单方法是用光标键。在系统提示符后按向上光标键后,最后输入的命令将出现在命令行上,再按一下则倒数第二条命令会出现,依此类推。也可以用向下的光标键来向下翻历史命令。还可以通过“Esc”和“Tab”键完成对历史命令的搜索,即键入历史命令的部分字符串,然后按“Esc”再按“Tab”键,与刚才键入字符串相匹配的历史命令将自动扩展并回显到命令行上。如果不止一个命令与输入的字符串相匹配,就会听到一声响铃,继续键入字符或字符串,Shell将会惟一确定用户所要键入的历史命令。

③别名:在实际操作过程中,用户可能会经常遇到一些冗长而又不可不用的命令,因此bash提供了设置别名(alias)的功能,用户可以把这些命令用自己熟悉的名字代替,以便于操作。Alias的命令格式为:alias 别名=’命令’ ,直接用别名取代命令。如果键入不带任何参数的alias命令,将显示所有已定义的别名。如果想取消别名,可以使用unalias命令。

④命令行编辑:如果在键入命令时出现拼写错误,只需在运行所键入的命令之前,使用编辑命令来纠正编辑错误,然后执行它,而不用重新输入整行命令。这个功能对以长路径文件名作参数的命令特别有用。例如可以使用左右方向键来移动光标,使用回退键或删除键来删除字符。

(3)C Shell

C Shell由加州大学伯克利分校的Bill Joy为BSD Unix开发,与sh不同的是它的语法与C语言很相似。它提供了Bourne Shell所不能处理的用户交互特征,如命令补全、命令别名、历史命令替换等。但是C Shell与Bourne Shell并不兼容。tcsh是C Shell的一个扩展版本。tcsh包括命令行编辑、可编程命令补全、拼写校正、历史命令替换、作业控制和类似C语言的语法。

(4)Korn Shell

Korn Shell是AT&T Bell实验室的David Korn开发的,它集合了C Shell和Bourne Shell的优点,并且与Bourne Shell向下完全兼容。Korn Shell的效率很高,其命令交互界面和编程交互界面都很好。

Linux系统提供了pdksh(ksh的扩展),它支持任务控制,可以在命令行上挂起、后台执行、唤醒或终止程序。另外还有ash、rsh、zsh等Shell,不同版本的Shell各有自己的特点。用户可以根据自己的兴趣和需要选择,所选用的Shell版本不会影响系统普通命令(如cp、ls)的使用。不同的Shell中,普通命令的语法都是相同的,只有当用户书写Shell程序或使用Shell的一些高级特性时,不同版本的Shell才会显示出一些差异来。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈