系列文章目录
第一章 Linux指令的认识
文章目录
- 系列文章目录
- 前言
- 一、认识命令行成分
- 二、外壳系统与操作系统内核
-
- [2.1 外壳系统](#2.1 外壳系统)
- [2.2 操作系统内核](#2.2 操作系统内核)
- 三、外壳存在的意义及在Linux中的体现
-
- [3.1 方便操作](#3.1 方便操作)
- [3.2 保护内核](#3.2 保护内核)
- [3.3 实现多线程](#3.3 实现多线程)
- [3.4 shell体现](#3.4 shell体现)
- 四、通用体现
- 总结
前言
本节为学习Linux指令的第四节内容,本节知识本应与第三节捆绑,但由于本人对学习内容的错误认识,造成分节错误。废话不说了,让我们开始学习Linux的shell机制。
一、认识命令行成分
命令行由四部分组成,如图:

#为提示符号,并且是root专属的,普通用户提示符则为"$"。命令行不是系统输入输出的接口,其实它是一个叫外壳程序提供打印的以实现我们的操作。
二、外壳系统与操作系统内核
2.1 外壳系统
外壳系统又名Shell,是在外部的保护系统,负责对其内部的操作系统内核进行各种操作。
Shell:外壳,包裹在内核外面,负责接收用户命令、翻译给内核执行,是人跟内核沟通的桥梁。
我们平常在命令行上输入的内容,其实本质是字符串 ,这些字符串会被外壳系统接受并转为可运行指令发送给内核,从而执行功能,并将结果返回输出。
从技术⻆度,Shell的最简单定义:命令⾏解释器(commandInterpreter)主要包含:
- 将使⽤者的命令翻译给核⼼(kernel)处理。
- 同时,将核⼼的处理结果翻译给使⽤者。
2.2 操作系统内核
操作系统内核简称内核,是接受并执行命令的关键结构,能够负责数据的改变。
内核(Kernel):系统内核,负责底层硬件管理、进程、内存、文件系统,躲在底层不直接跟人交互。
三、外壳存在的意义及在Linux中的体现
****那我们为什么不直接向内核操作,而使用外壳处理呢?****想理解这个问题就得从两者关系入手。
3.1 方便操作
我们用小故事来比喻这两者之间的关系: 小王是精通程序操作的程序员,想找对象但由于内向不敢搭讪认识,于是找媒婆想跟之前的同学小黑说媒,但媒婆去找小黑,小黑拒绝了这个亲事,王婆将结果告诉小王,这件事就结束了。
这个故事可以类比Linux内容:
| 故事身份 | 类比系统 | 人物做法 | 类比系统 |
|---|---|---|---|
| 小王 | 用户 | 喜欢小黑 | 输入命令 |
| 王婆 | 外壳 | 向小黑说媒 / 告诉小王结果 | 外壳将命令转交给内核 / 返回结果信息 |
| 小黑 | 操作内核 | 拒绝亲事 | 命令执行出错 |
那么我们就知道了外壳存在的意义之一:就是帮助用户在不熟悉内核的具体运行规则情况下,实现命令操作------即方便用户操作。
3.2 保护内核
再来一个故事新版本: 小王知道被拒绝后,还是要求媒婆说媒:非小黑不娶,媒婆犟不过就又去小黑家,但远远的看见小黑和她的家人在和小白一起开心吃饭,如同一家人,媒婆不想破坏人家就直接回去了。
这个故事可以类比Linux内容:如用户在输入命令时,如果命令不合理,外壳就会拦截这个命令,防止对内核造成损害。
那么我们就知道了外壳存在的意义之二:防止用户执行不合理的命令对环境造成破坏------即保护内核。
3.3 实现多线程
再来一个故事新版本: 小王还是不同意这个结果,仍然找媒婆取小黑家说媒,小王爸给媒婆说:你就去吧装装样子就行了,媒婆为了即干事又不破坏自己的招牌,于是找了一个实习生去干这件事,这样无论成败都不会影响自己,而且还可以处理自己的事情。
这个故事可以类比Linux内容:这个自己+实习生 就是线程的底层思想,这也是外壳的高效所在------即多线程。
3.4 shell体现
shell只是一个统称,在Linux centos中这个命令行解释器叫做bash,在登陆后就会自动打开,并一直循环处理(shell和bash就是媒婆与王婆的区别,还有sh、xsh等)。

四、通用体现
对⽐windowsGUI,我们操作windows不是直接操作windows内核,⽽是通过图形接口,点击,从⽽完成我们的操作(⽐如进⼊D盘的操作,我们通常是双击D盘盘符.或者运⾏起来⼀个应⽤程序)。
shell 对于Linux,有相同的作⽤,主要是对我们的指令进⾏解析,解析指令给Linux内核。反馈结果在通过内核运⾏出结果,通过shell解析给⽤⼾。
还有安卓手机,它的底层就是Linux,外壳安卓就是这样封装后的命令行解释器。
总结
本节的知识就到这里了,今后的学习中我们还会遇到shell,学习它的底层、甚至写出一个自己的外壳,指令篇就到这里了,下一节将会开启权限的讲解。