Shell 本身是一个用C 语言编写的程序,它是用户使用Linux 的桥梁。Shell 既是一种命令语言,又是一种程序设计语言。作为命令语言,它交互式地解释和执行用户输入的命令;作为程序设计语言,它定义了各种变量和参数,并提供了许多在高级语言中才具有的控制结构,包括循环和分支。它虽然不是Linux 系统核心的一部分,但它调用了系统核心的大部分功能来执行程序、建立文件并以并行的方式协调各个程序的运行。因此,对于用户来说,shell是最重要的实用程序,深入了解和熟练掌握shell 的特性极其使用方法,是用好Linux 系统的关键。可以说,shell 使用的熟练程度反映了用户对Linux 使用的熟练程度。 一、什么是shell 当一个用户登录Linux 系统之后,系统初始化程序init 就为每一个用户运行一个称为shell(外壳)的程序。那么,shell 是什么呢?确切一点说,shell 就是一个命令行解释器,它为用户提供了一个向Linux 内核发送请求以便运行程序的界面系统级程序,用户可以用shell来启动、挂起、停止甚至是编写一些程序。 当用户使用Linux 时是通过命令来完成所需工作的。一个命令就是用户和shell 之间对话的一个基本单位,它是由多个字符组成并以换行结束的字符串。shell 解释用户输入的命令,就象DOS 里的command.com 所做的一样,所不同的是,在DOS 中,command.com 只有一个,而在Linux 下比较流行的shell 有好几个,每个shell 都各有千秋。一般的Linux 系统都将bash 作为默认的shell。 二、几种流行的shell 目前流行的shell 有 ash、 bash、 ksh、 csh、 zsh 等,你可以用下面的命令来查看你自己的shell 类型: #echo $SHELL $SHELL 是一个环境变量,它记录用户所使用的shell 类型。你可以用命令: #shell-name 来转换到别的shell,这里shell-name 是你想要尝试使用的shell 的名称,如ash 等。这个命令为用户又启动了一个shell,这个shell 在最初登录的那个shell 之后,称为下级的shell 或子shell。使用命令: $exit 可以退出这个子shell。 使用不同的shell 的原因在于它们各自都有自己的特点,下面作一个简单的介绍: 1.ash ash shell是由Kenneth Almquist 编写的,Linux 中占用系统资源最少的一个小shell,它只包含24 个内部命令,因而使用起来很不方便。 2.bash bash 是 Linux 系统默认使用的shell,它由Brian Fox 和 Chet Ramey共同完成,是Bourne Again Shell 的缩写,...