购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

2.1.1 什么是Shell

我们平时所说的Shell可以理解为Linux系统提供给用户的使用界面。Shell为用户提供了输入命令和参数并可得到命令执行结果的环境。当一个用户登录Linux系统之后,系统初始化程序init就会根据/etc/passwd文件中的设定,为该用户运行一个被称为Shell的程序。

确切地说,Shell是一个命令行解释器,它为用户提供了一个向Linux内核发送请求以便运行程序的界面系统级程序,用户可以用Shell来启动、挂起、停止甚至编写一些程序。Shell处在内核与外层应用程序之间,起着协调用户与系统的一致性、在用户与系统之间进行交互的作用。如图2-1所示是Linux系统层次结构图,Shell接收用户输入的命令,并把用户输入的命令从类似abcd的ASCII码解释为类似0101的机器语言,然后把命令提交给系统内核处理;当系统内核处理完毕之后,再通过Shell把处理结果返回给用户。

图2-1 Linux系统层次结构图

Shell与其他Linux系统命令一样,都是实用程序,但它们之间还是有区别的。一旦用户注册到系统后,Shell就被系统装入内存并一直运行到用户退出系统为止;而一般命令仅当被调用时,才由系统装入内存执行。

与一般命令相比,Shell除了是一个命令行解释器,还是一门功能强大的编程语言,易编写,易调试,灵活性较强。作为一种命令级语言,Shell是解释性的,组合功能很强,与操作系统有密切的关系,可以在Shell脚本中直接使用系统命令。大多数Linux系统的启动相关文件(一般在/etc/rc.d目录下)都是使用Shell脚本编写的。与传统的编程语言一样,Shell提供了很多特性,这些特性可以使Shell脚本编程更为有用,如数据变量、参数传递、判断、流程控制、数据输入和输出、子程序及中断处理等。

说了这么多,其实我们在Linux系统中操作的字符界面就是Linux系统的Shell,也就是Bash。但是,图形界面是Shell吗?其实,如果从广义上讲,图形界面当然也是Shell,因为它同样用来接收用户的操作,并传递到内核进行处理。不过,这里的Shell主要指的是Bash。 PtxuNnuH9jL1PscHDWbdAFvcR66cnwkL3woGIVjg8v210FEmbnpT+PFdH0WrSTAR

点击中间区域
呼出菜单
上一章
目录
下一章
×