shell命令以及运行原理

news2024/11/19 3:50:25

shell命令以及运行原理

  • shell命令以及运行原理

shell命令以及运行原理

Linux严格意义上来说说的是操作系统,我们把操作系统称之为“内核”(kernel),但是我们用户是不会直接与kernel直接打交道的,我们是通过一个“外壳程序”来与kernel进行交互,这个外壳程序也就是我们说所的shell,就比如window下,在用户和操作系统之间进行交互的就是windows GUI,我闷操作window并不是直接就去操作window内核,而是通过鼠标点击,调用图形接口,从而将我们的操作传达给操作系统!
在这里插入图片描述

那么我们用户为什么不能直接与kernel直接进行交互嘞?
这个问题也就是要回答shell存在的意义:

1、课可以更好的帮助操作系统与用户之间的交互,通过shell我们可以将用户的命令翻译给操作系统,同时我们也可以将我们操作系统的反馈翻译给我们的用户;
2、保护操作系统;假设我们的用户下达了一些比较危险的指令,那么我们就可以在shell层就终止掉该指令,从而间接的保护操作系统;
3、执行命令的时候可以创建子进程来执行;就算子进程运行失败,也不会影响到shell进程!

下面我们可以通过一个比较实际的例子来理解这个shell命令和运行原理:

就比如张三是一个腼腆的程序员,只适合与计算机打交道,不适合与人打交道;他的老爹嘞是村长,现在张三看上了隔壁村的小花,但是嘞由于他的这个性格就不适合去和小花进行交流,他的老爹就去请了一个媒婆帮助张三,让媒婆去小花家说亲,然后张三将他的需求和要求给王婆说了一下,王婆进行了简单包装,然后就去小花家了,去跟小花交流了很久,小花最终得出了一个不同意的结论!!为此王婆就将这个信息也简单包装了一下并带来回来,反馈给了张三!
这上面的媒婆嘞就相当于我们用户、shell、操作系统中的shell,而张三就相当于用户、小花就相当于操作系统,张三通过媒婆给小花表达心意就相当于用户通过shell与操作系统进行交流,小花拒绝了他的要求,就相当于用户给操作系统下达的命令操作系统做出了反馈,然后由王婆带回反馈给了张三!;
好现在我们故事继续:
张三得知了这个消息,不甘心啊,就叫王婆继续去说,王婆又去了,但是当他要进门的时候,他看到了小花竟和李四正手拉手看电视,双方家长也都还早,王婆看到这就知道张三的事铁定成不了了,为了防止张三做出过激行为,王婆就直接拒绝了张三的请求!
那么这里王婆没要将请求送到小花家,就自动做出判断拒绝了张三的请求,也就相当于shell阻止了用户下达的危险指令,从而间接的保护了操作系统;
好现在故事继续!
但是迫于张三村长父亲的压力和自己的金子招牌,王婆得想个办法解决这个问题,于是王婆想到了一个办法,通过招牌实习生!每当张三要再次去小花家说媒的时候王婆就派一个实习生过去,无论实习生是谈成功了还是失败了都与我王婆无关!!
那么这里王婆的这个办法就相当于shell创建子进程去执行用户命令,无论是执行失败还是成功都不会影响我们的shell进程!!

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

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

相关文章

D. Fixed Point Guessing(二分+交互式问题)

Problem - D - Codeforces 这是一个互动问题。 最初,有一个数组a[1,2,...,n],其中n是一个奇数正整数。陪审团选择了n-12对不相干的元素,然后对这些元素进行交换。例如,如果a[1,2,3,4,5],对1↔4和3↔5进行互换&#xf…

吐血经验,怎么把OAK相机的镜头模组拆下来?

消息快播:OpenCV众筹了一款ROS2机器人rae,开源、功能强、上手简单。来瞅瞅~ 编辑:OAK中国 首发:oakchina.cn 喜欢的话,请多多👍⭐️✍ 内容可能会不定期更新,官网内容都是最新的,请查…

[AI] LRTA*(K) 搜索算法

LRTA*[k]搜索算法 一、理论二、实际应用步骤一、理论 LRTA*(K) 是LRTA* 算法的进阶版,关于LRTA*的回顾请点此处, LRTA*(K) 论文请点此处 该文作者把LRTA算法归为 无界传播(unbounded propagation, 中文用谷歌翻译的。。。囧),LRTA(K)归为有…

第四章:JVM运行时参数

一、JVM参数选项类型类型一:标准参数选项类型二:-X参数选项类型三: -XX参数选项二、常用的 JVM 参数选项打印设置的 XX 选项及值堆、栈、方法区的参数栈堆方法区垃圾回收器相关参数Serial回收器ParNew 回收器ParallelGcCMS回收器G1 回收器如何…

Win11杜比全景声无法正常运行的解决方法教学

Win11杜比全景声无法正常运行的解决方法教学。我们的电脑开启杜比声全景音效之后,无论是看电影,还是听音乐,都可以获得更加良好的视听体验。但是有用户却遇到了电脑无法正常的开启杜比声音效的问题,一起来看看如何去解决的方法吧。…

【Selenium】Selenium4 Grid

Selenium Grid: 将客户端发送的命令转发到远程浏览器上执行 WebDriver 脚本。 简介 Selenium Grid 是由一个 hub 服务和若干个 node 代理节点组成。 Hub 调度服务,管理各个代理节点的注册信息和状态信息,并且接收来自客户端代码的调用请求,…

13.练习题(年月日,打字游戏)

练习 1.任意给出一个年、月、日,判断是这一年的第几天:闰年算法:能被4整除且不能被100整除,或者能被400整除。 如:2012 5 10 是这一年的第131天。 提示:使用数组的方式计算,将每月的天数放在一…

面试学习总结

之前根据视频做的总结,备个份。 一、Volatile关键字 volatile是Java虚拟机提供的轻量级的同步机制。 三个特性: 保证可见性 线程修改了工作内存中的值并写回到主内存之后,主内存立刻通知所有线程。称为可见性。(结合JMM理解&am…

蓝桥杯刷题(三)

蓝桥杯刷题一.等差素数列(较难)二.货物摆放(思路新奇)三.既约分数四.跳跃五.数值求值(坑题)蓝桥杯题库一.等差素数列(较难) 这道题有公式,其等差就是它长度内所有素数的乘…

Seata安装并注册集成到Nacos服务上

目录 一.工具地址与版本 二.解压与配置 三.创建数据库,执行脚本 四.启动与调试 五.seata高可用 六.查看启动情况 一.工具地址与版本 1.nacos-server-2.0.3 下载地址:Releases alibaba/nacos GitHub 2.seata-server-1.4.2 下载地址&#xff1…

小侃设计模式(十四)-职责链模式

1.概述 责任链模式(Chain of Responsibility Pattern)是为请求创建了一个接收者对象的链,让请求沿着这条链进行传播,直到有对象处理它为止,它属于典型的行为型模式。这种方式降低了发送者和处理者之间的耦合关系&…

HTML+CSS简单的网页制作期末作业 关于我的家乡——四川文化网页介绍 DW大学生网页作业制作设计 Dreamweaver简单网页成品

家乡旅游景点网页作业制作 网页代码运用了DIV盒子的使用方法,如盒子的嵌套、浮动、margin、border、background等属性的使用,外部大盒子设定居中,内部左中右布局,下方横向浮动排列,大学学习的前端知识点和布局方式都有…

chapter1——亚稳态的世界

目录1.亚稳态理论2.亚稳态窗口3.计算MTBF4.避免亚稳态多级同步器时钟倍频电路的多级同步器5.亚稳态测试电路6.同步器类型7.综合性建议在异步系统中,由于数据和时钟的关系不是固定的,因此有时会出现违反建立和保持时间的现象,此时便会输出介于…

OTA: Optimal Transport Assignment for Object Detection原理与代码解读

paper:OTA: Optimal Transport Assignment for Object Detection code:https://github.com/Megvii-BaseDetection/OTA 背景 标签分配(Label Assignment)是目标检测中重要的一环,经典的标签分配策略采用预定义的规则…

Type-challehges learning: pick

type-challenges/README.zh-CN.md at main TIMPICKLE/type-challenges GitHub 最近真的是迷上了type-challenges。无法自拔 TS真是太香了&#xff01; 今天手写一个pick 从类型定义的属性中&#xff0c;选取指定一组属性&#xff0c;返回一个新的类型定义。 type Pick<T…

Npm——发布依赖库并使用

1. 注册一个NPM账号 npm官方地址&#xff1a;https://www.npmjs.com/ 2. 在本地创建一个目录,输入npm初始化命令&#xff0c;并修改package.json,创建src/index.js入口文件 npm init --yespackage.json name npm发布时的包名&#xff0c;和已有的npm库不能重复version 包版本…

网络安全——SQL注入之安全狗bypass深度剖析

作者名&#xff1a;Demo不是emo 主页面链接&#xff1a;主页传送门 创作初心&#xff1a;舞台再大&#xff0c;你不上台&#xff0c;永远是观众&#xff0c;没人会关心你努不努力&#xff0c;摔的痛不痛&#xff0c;他们只会看你最后站在什么位置&#xff0c;然后羡慕或鄙夷座…

这些调试API技巧你熟悉吗?

通常&#xff0c;我们在调试第三方提供的API时&#xff0c;有时候并没那么顺畅&#xff0c;甚至可能本身就是API服务有问题&#xff0c;但是需要提供你结论的"依据"。下面整理了一些API调试技巧&#xff0c;也方便你甩锅 简单来说分为以下两点 检测状态信息检测返回…

MySQl(八):索引机制

MySQl&#xff1a;索引索引概述索引结构B树的演变过程B树Hash索引分类聚集索引和二级索引### 回表查询思考索引语法普通索引联合索引删除索引索引使用索引使用规则之验证索引效率索引使用规则之最左前缀法则索引使用规则之索引失效情况索引使用规则之SQL提示索引使用规则之覆盖…

java多线程

最近看了寒食君的java多线程的教程&#xff0c;感觉深受启发&#xff0c;做个笔记以后方便回忆。 寒食君的个人空间-寒食君个人主页-哔哩哔哩视频 java多线程 什么是线程模型? JVM线程与操作系统线程之间存在着某种映射关系&#xff0c;这两种不同维度的线程之间的规范和协…