Shell是Linux系统下的命令解释器,也是使用Linux系统的主要环境,Shell的功能很多,主要从Shell的基本概念、Shell的种类、Shell中的特殊字符、重定向以及Shell程序几个方面来讲解,重点内容是Shell的特殊字符和Shell编程。
什么是Shell
用户登录进入Linux系统时,可以进入基于X Window的图形视窗系统:KDE。当然很多工作可以在图形环境下完成,但是在服务器应用环境下的很多情况需要远程连接到服务器进行管理配置,而且使用命令行模式进行管理更加方便和简单,因此学习Linux,Shell的学习和使用是必不可少的一部分。
如果系统设置为不自动启动图形接口,那么用户登录以后得到的就是一个等待输入命令的Shell提示符,标识了可以开始发出命令;如果系统设置为自动启动图形系统,那么用户可以在单击【开始】→【Thiz Menu 即时菜单】→【简体中文终端机(GB2312)】运行终端仿真程序,在命令提示符后面输入任何命令及参数,如图3-1所示。
图3-1 运行终端类比程序
用户登录或运行终端类比程序时,实际进入了Shell。那么,Shell是什么呢?确切一点说,Shell就是一个命令行解释器,它的作用就是遵循一定的语法将输入的命令加以解释并传给系统。它为用户提供了一个向Linux发送请求以便运行程序的接口系统级程序,用户可以用Shell来启动、挂起、停止甚至是编写一些程序。
Shell本身是一个用C语言编写的程序,它是用户使用Linux的桥梁。Shell既是一种命令语言,又是一种程序设计语言。作为命令语言,它互动式地解释和执行用户输入的命令;作为程序设计语言,它定义了各种变量和参数,并提供了许多在高阶语言中才具有的控制结构,包括循环和分支。它虽然不是Linux系统内核的一部分,但它调用了系统内核的大部分功能来执行程序、创建文档并以并行的方式协调各个程序的运行。因此,对于用户来说,Shell是最重要的实用程序,深入了解和熟练掌握Shell的特性极其使用方法,是用好Linux系统的关键。可以说,Shell使用的熟练程度反映了用户对Linux使用的熟练程度。
当用户使用Linux时是通过命令来完成所需工作的。一个命令就是用户和Shell之间对话的一个基本单位,它是由多个字符组成并以换行结束的字串。Shell解释用户输入的命令,就像DOS里的command.com一样不同的是,在DOS中,command.com只有一个,而在Linux下比较流行的Shell有好几个,每个Shell都各有千秋。一般的Linux系统都将bash作为默认的Shell。