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

4.2 理解Shell

之前在第1章也跟各位提到过Shell,但是并没有细致地介绍,本节结合图4-1中的结构图完整、详细地学习、理解Shell。

Shell俗称壳,取这个名字是用来区别内核的“核”字,它是Linux操作系统的命令语言,同时又是该命令语言的解释器程序的简称。也就是说,Shell既是一门编程语言,又是一个用C语言编写的程序软件。

图4-1 Linux操作系统结构图

Shell的位置处在用户与内核之间,起到承上启下的作用。由于安全性、复杂性和步骤烦琐等各种原因,普通用户是不能直接接触Linux内核的,那就需要另外再开发一个程序,这个程序的作用就是接收用户的操作命令,进行一些处理,最终将这些操作信息传递给内核。这里的处理过程可以理解为“将用户的各种操作转换为内核能看懂的语言”,相当于一个翻译官的角色,这样用户就能间接地使用操作系统内核了。Shell是在用户和内核之间增加的一层“代理”,既能简化用户的操作,又能保障内核的安全,两全其美。

总之,Shell是一个程序软件,它连接了用户和Linux内核,让用户能够更加高效、安全、低成本地使用Linux内核,这就是Shell的本质。使用Shell可以实现对Linux操作系统的大部分管理。

Linux操作系统有多种发行版本,这些发行版是由不同的组织机构开发的。不同的组织机构为了发展出自己的Linux操作系统特色,就会开发出功能类似但特性不同的软件,Shell就是其中之一。不同特性的Shell各有所长,有的占用资源少,有的支持高级编程功能,有的兼容性好,有的重视用户体验等。常见的Shell类型见表4-1。

表4-1 常见的Shell类型

Bash作为许多Linux发行版的默认Shell,它的特性如下:

➢ 自动补齐:使用Tab键可以自动补全命令和路径;

➢ 命令行历史:使用上下键可以翻看最近执行的命令,用Ctrl+R组合键可以搜索历史命令,用history命令可以调出之前执行的历史命令记录;

➢ 命令别名:用一个短命令去代替执行一段很长的命令;

➢ 输入输出重定向和管道:改变数据流的输入输出方向;

➢ 支持使用通配符和特殊符号;

➢ 支持变量用于条件测试以及迭代的控制结构。

这些特性后面会经常用到,这里可先了解,不明白也没关系,之后边实践边学习,很快就能掌握。

最后再讲个小知识,Shell程序一般都是放在/bin或者/usr/bin目录下,当前的Linux操作系统都支持哪些Shell程序,可以在/etc/shells文件中通过cat命令查看。 E6FvsLoxIMOx1jGvbRYadb/eF/xLXOgtA7oVLI3w/IYeeT/lFHqBYw2hKqbkuoV5

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