Shell是用户和Linux操作系统之间的接口。Linux中有多种shell,其中缺省使用的是bash。
Linux系统的shell作为操作系统的外壳为用户提供使用操作系统的接口,它 是一个命令语言解释器,拥有自己内建的shell命令集。shell也能被系统中其 他应用程序所调用,用户在提示符下输入的命令都由shell先解释然后传给Linux核心。
Linux中的shell有多种类型,其中最常用的几种是Bourneshell(sh),C shell (csh)和 KomsheN (ksh),三种 shell 各有优缺。
Bourne shell是UNIX最初使用的shell,并且在每种UNIX上都可以使用。 Bourne shell在shell编程方面相当优秀,但在处理与用户的交互方面做得不 如其他几种shell。Linux操作系统缺省的shell是Bourne Again shell,它是 Bourne shell的扩展,简称bash。与Bourne shell完全向后兼容,并且在 Bourne shell的基础上增加增强了很多特性。它还包含了很多C shell和Korn shell中的优点,有灵活和强大的编程接口同时又有很友好的用户界面。
C shell是一种比Bourne shell更适于编程的shell,它的语法与C语言很相似。Linux为喜欢使用C shell的人提供了 Tcsh。Tcsh是C shell的一个扩展版本。 Tcsh包括命令行编辑可编程单词补全、拼写校正、历史命令替换、作业控制 和类似C语言的语法。它不仅和Bash shell是提示符兼容,而且还提供比Bash shell更多的提示符参数。
Korn shell 集合了 Cshell 和 Bourne shell 的优点并且和 Bourne shell 完全兼 容Linux系统提供了 pdksh (ksh的扩展),它支持任务控制,可以在命令行 上挂起、后台执行、唤醒或终止程序。
Redhat Linux系统默认的shell是bash,对普通用户用$作提示符,对超级用户root用#作提示符,一旦出现了 shell提示符就可以键入命令名称及命令所 需要的参数。
我们来实习一下shell是如何工作的,在shell提示符下输入以下命令:
$ Is-al
该命令可以列出当前目录下的所有文件和子目录。
用户在登录到Linux时,由/etc/passwd文件来决定要使用哪个shell。例如,
该文件中含有类似如下一行:
myself:x:500:500:Linux User:/home/myself:/bin/bash 用户使用的shell被列每行的末尾(/bin/bash)。
由于bash是Redhat Linux上缺省的shell,以后将主要介绍bash及其相关知识。
参考:http://www.weixueyuan.net/cpp/rumen_1/