Linux | 浅谈Shell运行原理【王婆竟是资本家】

news2024/12/23 1:26:07

在这里插入图片描述
在这里插入图片描述

文章目录

  • 💧Shell的运行原理
    • 👉Shell的基本概念与作用
    • 👉原理的展示与剖析
    • 👉Shell外壳感性理解【一门亲事】
  • 💧总结

💧Shell的运行原理

👉Shell的基本概念与作用

Linux严格意义上说的是一个操作系统,我们称之为“核心(kernel)“ ,但我们一般用户,不能直接使用kernel。而是通过kernel的“外壳”程序,也就是所谓的shell,来与kernel沟通。如何理解?为什么不能直接使用kernel?

  • 因为对于普通用户去直接使用OS的内核存在一定的风险性,所以在这个内核(kernel)的外层,就包裹了一层shell,我们虽然不能直接访问操作系统的内核,但是可以通过这层shell与OS内核进行一个中间交互,从而与内核去产生一个互动

在Windows中,我们以GUI图形化界面作为交互方式;在Linux中,我们以命令行作为交互方式

  • 但它们本质上是一样的,都是为了让用户进行相关操作,而图形化界面和命令行界面就是我们所说的“外壳程序”【shell】
  • 说了这么多,其实对于Shell的最简单定义:命令行解释器(command Interpreter)主要包含:
  • 将使用者的命令翻译给核心(kernel)处理
  • 同时,将核心的处理结果翻译给使用者

👉原理的展示与剖析

为了更好地帮助理解,我画了如下图示
在这里插入图片描述

  • 对比windows GUI,我们操作windows 不是直接操作windows内核,而是通过图形接口点击,从而完成我们的操作(比如进入D盘的操作,我们通常是双击D盘盘符.或者运行起来一个应用程序
  • shell 对于Linux,有相同的作用,主要是对我们的指令进行解析,解析指令给Linux内核。反馈结果在通过内核运行出结果,通过shell解析给用户。

在这里插入图片描述

  • 其实对于Shell,说白了它就是一个【命令行解释器】,等待我们去输入一条指令然后对这条指令进行一个解析,把解析之后的命令传递给操作系统,然后把结果以特定的方式拿到后以不同的形式展现给用户,比如说“打印”

在这里插入图片描述

  • 从作用上来将,Shell其实和我们现在所使用的图形化界面是一模一样的,比方说在Windows中我们双击打开了软件这个文件夹后,也就进入了这个文件夹,查看到了里面所放的内容,看到了另外一个界面,这其实就和【cd】+【ls】是一个道理,只是获取输入和显示的方式不一样。
  • 对于Windows的图形化界面来说它的制作更加复杂一些,因此用户体验感更好,Linux的这种纯命令行式的操作比较直观一些,但是体验感不是很佳

【于是有个同学他就说,对于我们在Windows下点击一个图标时操作系统是不是将它解析成指令然后反馈给操作系统去执行】
===》完全不是❌,大家不要将Linux中的指令和Windows中的图形化界面混为一谈。当你点击图形化界面这种操作的时候,它就直接被操作系统执行了,如果非要说有指令存在的话那执行的就是这段指令的代码,双击图标显示就是执行【cd + ls】的代码。而不是说点击了某个图标就是变成了对应的指令去执行

对于Shell这一块的理解光这么说说坑大家还是难以深刻地理解,所以我们通过一个生活中的小案例来看看👀


👉Shell外壳感性理解【一门亲事】

了解了Shell的一些基本概念和原理之后,接下去我们通过一个小场景来感性地理解一下Shell

  • 故事背景是这样的:你呢叫张三,你的爸爸是村里的村长,在毕业后你找了一份很好的工作回到家里,此时你的爸爸说:“儿子呀,现在你已经完成了一件很重要的事情,就是找到一份得体的工作,但是呢,还有一件更加重要的事需要你去完成,你看你年纪也不小了,也到了谈婚论嫁的地步,那是不是应该去找个女朋友谈谈呢”
  • 此时你回应说:老爸,我听喜欢我们家隔壁的那个小花,她也是我的初中同学。你老爸听了你的这番说辞,立马就找到了村东头的王婆,王婆呢也是你老爸的老同学了,现在想要找她帮你说个媒,那对于村长的请求,王婆肯定是不能拒绝,当天立马就去了小花家里,和她说:“小花呀,最近又漂亮了不少,你看你现在还单身着呢,隔壁的张三现在找到了一份很好的工作,他爸也是村长,你们两个也是老同学,年纪也相当,看看能不能和他处处。”但是呢小花她不喜欢你呀,于是就对王婆说:“我对他不感兴趣,叫他别来找我了”,那此时王婆也是非常无奈呀,回到村长家之后,就跟你和你爸爸说了小花的态度。

通过上面的小案例,我们可以去理解Shell外壳的工作原理,这里可以将张三也就是你看做是用户,然后将小花呢看做是操作系统,平常我们来使用操作系统的时候,其实并不是直接对操作系统的内核进行处理,而是通过鼠标的点击进行一些对应的访问,此时呢你和操作系统之间就存在着一个交互的东西叫做Shell,Shell可以作为你和操作系统之间的一个传递者,通过Shell让操作系统知道你的想法,然后操作系统执行你的命令,再通过Shell返回出去,所以可以看出这个王婆也就是Shell,起到一个中介的作用

在这里插入图片描述

  • 但是事情完了吗,很明显没有,因为可以看到图中还有一个李四呢🐶,因为你呢就是喜欢小花,还是想要再坚持一下,于是你老爸就又找到了王婆,并且给了她一些好处,此时王婆就不得不再度厚着脸皮去找小花,但是当王婆走到小花家门前的时候,看到她隔壁家的李四正手拉手坐在沙发上看电视,旁边还坐着双方的父母,经验丰厚的王婆看到这一幕心想:这生米都快煮成熟饭了,我在去把电线拔了是不是不太好呀🍚
  • 于是这个时候王婆就毅然决然地放弃了这个念头,想要回到你家和说明这件事,但是呢因为你老爸是村长,所以王婆比较忌惮,所以想了想:而且若是带着这样的消息回来的话,不是坏了我这么多年积攒下来的名誉了。所以还是先选择回到了自己家,此时。。。

上面的描述其实就反映了Shell的一些原理===> ①帮忙进行命令传递和返回结果 ②保护操作系统(不去打扰小花)

在这里插入图片描述

  • 事情完了,当然没有😜
  • 当王婆带着万千思绪准备回家的时候她突然想到:为什么要我自己去做这件事呢,我招募几个人替我去说媒,这样若是失败了既不会影响我的名誉,又可以把事情办成,毕竟我这么个老太婆怎么说得动现在的年轻人呢。所以此时王婆就上招聘网站招募了几个实习生,然后对她们培训了一段时间后让她们去进行说辞,然后就带回了好消息,不得不说现在的年轻人都怎么想的,随随便便就在一起,然后一言不合就分手了,可谓是亵渎爱情呀❤
  • 有了这样的好消息,此时王婆就马上开启她的小毛驴到村长家邀功,然后你就可以趁虚而入了😍

上述的王婆(资本家)招募实习生这段故事其实就是Shell在执行用户所给出的命令时,会创建子进程来执行

在这里插入图片描述
看完上面的这个生活小案例,你是否对Shell有了一些深入的理解呢?

💧总结

好,我们来总结一下本文所学习的内容

  • 在本篇文章中,首先了解了一下什么事shell,它是用于与操作系统之间的一个中间者用于将用户执行的一些操作转达给操作系统,然后操作系统执行之后再反馈给shell,最后通过shell将执行的结果反馈给操作的用户
  • 理解了shell的基本概念和作用之后,便对其原理展开剖析,讲了对于Windows中的鼠标点击操作和Linux中的命令行操作其实本质都是一样的,对于双击图标也就是我们执行的cd + ls的执行。但是有一点要明白的是对于Windows中的图形化界面操作和Linux中的命令行操作还是存在本质区别的,不要混淆了
  • 在最后,我们又通过一个小故事对shell有了一个感性的理解,相信你在看了这个小故事后一定是有了自己的想法,也想明白了一些事情

若有所思,特作此分享,2023年1月20日晚18点

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/173720.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

华为数字化转型之道 平台篇 第十三章 变革治理体系

第十三章 变革治理体系 约翰科特在《领导变革》一书中说:“变革的领导团队既需要管理能力,也需要领导能力,他们必须结合起来。 前面我们也谈到,数字化转型不仅是技术的创新,更是一项系统工程和企业真正的变革。企业要转型成功,既需要各个组织的积极参与和通力合作,又不…

深度学习中高斯噪声:为什么以及如何使用

在数学上,高斯噪声是一种通过向输入数据添加均值为零和标准差(σ)的正态分布随机值而产生的噪声。 正态分布,也称为高斯分布,是一种连续概率分布,由其概率密度函数 (PDF) 定义: pdf(x) (1/ (σ*sqrt(2*π))) *e^(- (x…

Task6:文本函数查找函数

文章目录一 文本函数1 Text函数2 mid函数3 replace函数二 查找函数1 Vlookup2 Xlookup一 文本函数 1 Text函数 作用:将数值转换为指定格式的文本 语法:TEXT(value,format_text) (1)转换为大写 消费日期转换为大写 TEXT(A2,”[DB…

第五届字节跳动青训营 前端进阶学习笔记(六)什么才是好的JavaScript代码

文章目录前言问题引入实现一个交通信号灯的状态切换1.基本实现2.状态封装实现3.职责分离实现求一个数是否是4的幂1.基本实现3.数学优化洗牌算法1.基本实现2.均匀算法实现总结前言 课程重点: 代码规范相关事项如何优化代码 问题引入 试看下面一段代码&#xff0c…

认识UDP、TCP协议

一、Socket 首先,我们需要了解一下socket。 在上一篇文章当中,我们了解了TCP-IP五层协议模型初识网络:IP、端口、网络协议、TCP-IP五层模型_革凡成圣211的博客-CSDN博客TCP/IP五层协议详解https://blog.csdn.net/weixin_56738054/article/det…

Crack:RadiAnt DICOM Viewer 2023.1 BETA #1300

RadiAnt DICOM Viewer 2023.1 BETA #1300 built on January 13, 2023 New features: Length ratio calculation. Ellipsoid / bullet volume calculation. Added option to color and/or pin specific items to top in the DICOM tags window. 多式DICOM的技术支持 该软件能够打…

是时候分享一波jenkins centos的安装了

1、下载注意:至少安装2.319的版本,否则插件安装失败,2.357 之后版本需要java11,请注意java版本a、开始下载,利用华为云地址 https://mirrors.huaweicloud.com/home,速度杠杠快搜索jenkins,点击j…

api接口对接如何实现,php如何对接api

这篇文章来分享下api接口对接如何实现,还有源码,希望对新手有所帮助。 什么是API? 我的回答:API( 应用程序编程接口):一般来说,这是一套明确定义的各种软件组件之间的通信方法。 什么是API&…

Android数据库之SharedPreferences、SQLite、Room

文章目录一、SharedPreferences二、SQLite三、Room使用Room进行增删改查Room数据库升级一、SharedPreferences 要想使用SharePreferences来存储数据,首先需要获取到SharedPreferences对象。Android中提供了三种方法用于得到SharedPreferences对象 1.Context类中的g…

20230119英语学习

Back to the Future 在故宫修钟表是种什么样的体验? After a year of complex restoration, specialists from the Palace Museum in Beijing have given a pair of antique pagoda clock automata a new lease on life. In the form of a nine-tiered pagoda, th…

单片机寄存器

单片机寄存器简述 1、单片机寄存器就是单片机片内存储器(片内RAM)一部分,每一个都有地址。只不过这几个寄存器有特殊的作用,比如指令:MUL AB,这条指令用到两个寄存器A,B进行乘法,结果存到BA里面,这条指令必…

Linux基本功系列之type命令实战

文章目录一. type命令介绍二. 语法格式及常用选项三. 参考案例3.1 查看别名3.2 查看是否是内建命令3.3 查看是否为关键字3.4 显示所有命令的位置3.5 判断当前命令是否为alias或者keyword等总结前言🚀🚀🚀 想要学好Linux,命令是基本…

4-2指令系统-指令的寻址方式

文章目录一.指令寻址1.顺序寻址2.跳跃寻址二.数据寻址1.隐含寻址2.立即(数)寻址3.直接寻址4.间接寻址5.寄存器寻址6.寄存器间接寻址7.相对寻址(程序浮动、转移指令)8.基址寻址(多道程序)9.变址寻址&#xf…

移动web字体图标

字体图标下载字体图标使用字体图标使用类名引入字体图标使用unicode编码(了解)在线字体图标使用伪元素字体图标小结下载字体图标 具体的步骤&#xff1a; 使用字体图标 引入相关文件 复制相关的文件&#xff0c;到 fonts文件夹里面。 引入 css <link rel"styleshe…

回溯法复习(总结篇)

根据课本上的学习要点梳理&#xff0c;“通用解题法”&#xff0c;可以系统的搜索一个问题的所有解、任一解&#xff0c;他是一个既带有系统性&#xff08;暴力遍历&#xff09;又带有跳跃性&#xff08;剪枝&#xff09;的搜索算法。 理解回溯法和深度优先搜索策略 回溯的本质…

Kafka入门与核心概念

前言在我们开发过程中&#xff0c;有一些业务功能比较耗时&#xff0c;但是又不是很重要的核心功能&#xff0c;最典型的场景就是注册用户以后发送激活邮件分为两步1&#xff1a;向数据库插入一条数据2&#xff1a;向注册用户发送邮件第2步其实并不是核心功能&#xff0c;但是发…

SpringMVC-拦截器

1&#xff0c;pringMVC-拦截器 对于拦截器这节的知识&#xff0c;我们需要学习如下内容: 拦截器概念入门案例拦截器参数拦截器工作流程分析 1.1 拦截器概念 讲解拦截器的概念之前&#xff0c;我们先看一张图: (1)浏览器发送一个请求会先到Tomcat的web服务器 (2)Tomcat服务…

字节青训前端笔记 | 响应式系统与 React

本节课为前端框架 React 的基础课程讲解 React的设计思路 UI编程的特点 状态更新的时候&#xff0c;UI不会自动更新&#xff0c;需要手动调用DOM接口进行更新欠缺基本的代码层面的封装和隔离&#xff0c;代码层面没有组件化UI之间的数据依赖关系&#xff0c;需要手动维护&am…

【程序人生 | 价值扳机】你的寒假自律第一步(建议收藏)

&#x1f482;作者简介&#xff1a; THUNDER王&#xff0c;一名热爱财税和SAP ABAP编程以及热爱分享的博主。目前于江西师范大学会计专业大二本科在读&#xff0c;阿里云社区专家博主&#xff0c;华为云社区云享专家&#xff0c;CSDN SAP应用技术领域新兴创作者。   在学习工…

小技巧:Excel顽固的名称、引用冲突的解决

共享编辑、跨文档引用的不便 Excel 的共享文档多人编辑、跨文档引用等功能似乎很美好&#xff0c;实际用下来很成问题。 首先共享文档虽然用约定按标注责任人的方式由不同的人编辑不同的行避免的多人同时编辑一行的冲突&#xff0c;但是这通常是个大文件&#xff0c;经常(大概…