Linux系统篇,指令(四):shell命令及运行原理

系列文章目录

第一章 Linux指令的认识


文章目录


前言

  本节为学习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,学习它的底层、甚至写出一个自己的外壳,指令篇就到这里了,下一节将会开启权限的讲解。

相关推荐
暴力求解4 小时前
Linux网络---传输层协议TCP(二)
linux·服务器·开发语言·网络·tcp/ip
JoyCong19984 小时前
ToDesk个人版、专业版、游戏版、设计版、性能版、团队版权益介绍
大数据·运维·游戏·远程工作·远程操作
ltl5 小时前
序列化格式深度对比:Protobuf、FlatBuffers、Cap’n Proto
linux
lengjingzju5 小时前
编译与调试完全指南—第17章 总结
linux
ltl5 小时前
容器网络性能真相:veth vs macvlan vs eBPF 数据面
linux
Elastic 中国社区官方博客6 小时前
ES95:面向 Elasticsearch 时间序列指标的自适应压缩
大数据·运维·elasticsearch·搜索引擎·架构·全文检索
80s7776 小时前
动态ip和静态ip有什么区别
服务器·网络·tcp/ip
mqiqe7 小时前
AgentScope Java 2.0 Agent 状态存储(AgentStateStore)深度解析:构建可恢复、可扩展的智能体运行时
java·运维·网络
mennekes7 小时前
数据中心安全配电设备如何选择?
运维·人工智能·科技·安全·制造
CSDN121107 小时前
麒麟 V10 安装 Node-RED、IEC 104 协议插件及界面汉化
linux·编辑器·vim