张三、如花、王婆带你了解Shell命令以及运行原理
文章目录
- 前言
- 概述
- 张三、王婆、如花的故事
- Shell命令以及运行原理
- 后记
前言
Linux严格意义上说的是一个操作系统,我们称之为“核心(kernel)“ ,但我们一般用户,不能直接使用kernel。而是通过kernel的“外壳”程序,也就是所谓的shell,来与kernel沟通。如何理解?为什么不能直接使用kernel?
概述
Linux中大部分指令都是文件
用户执行某种功能的时候,不是让操作系统直接执行对应的指令,而是先交给外壳程序。
啊?什么外壳程序?我不懂
张三、王婆、如花的故事
张三是一个某985双一流大学研究生毕业的码农,人高马大,目前已经就业于某知名公司,还是有所成就的。虽然张三在学业和事业上有所成就,但是不善于和异性聊天。
张二是张三的父亲,对自己的儿子张三感到骄傲。但是,已经是一个26岁的小伙子了,还没有对象,作为父亲感到着急。张三的爹也是一个有头有脸的人物,是这个村的村委书记,在村子里面还是小有名气的。
王婆是这个村里的媒婆,村里方圆十里以内,俊男少女都认识,专为年轻人牵线。
如花是张三的青梅竹马,小时候经常在一起玩,但是两人在初中之后由于学业很少有来往。
小帅也是离如花家附近不远的一个邻居,年龄相仿。
张三的爹因为张三还没有找对象的事情感到着急,找到村里的媒婆——王婆来介绍。于是,张三的爹就把张三的微信推给了王婆,让王婆给张三介绍。
王婆加上了张三,和张三沟通了一番。张三对自己的青梅竹马如花独有风情,张三表示,自己想和如花交往。张三是一个实打实的理工男,不善于和女生交谈,一和女生交谈,脸红,脸红的夸张。现在这个年代,这样肯定是不行的。张三还表示,希望让王婆来拉近自己和如花之间的距离,希望进一步发展关系。
那么问题来了,为什么张三不自己去找如花??
因为张三不善于和异性交谈,善于和机器打交道,不理解女生的心里。
王婆找到了如花,向如花表达了张三的意思,但是如花表示,自己和张三不合适。
王婆也把如花的意思传给了张三,王婆也劝说张三,不要再找人家了,王婆可给张三介绍别的女生。
但是张三是一个专一的男人,只想要和如花交往,于是便让王婆再去说说。
第二天,王婆又来到了如花的家,但是还没有进家,就看到如花一家和小帅坐在一起吃饭,看着像是一家子,王婆也就没好意思到如花的家里面了。因为大家都知道王婆是一个媒婆,趁现在这个情况,进如花家里面自然是不太好。
王婆自己知道,张三和如花是不可能进一步发展关系的,委婉地和张三说自己可以给张三介绍村里其他的姑娘。
但是张三非要和如花交往,继续让王婆再去如花家说说,这让王婆也没有办法,毕竟人家父亲张二是村委书记。
王婆只能每次都路过如花家里,但是不进去,也不交谈,直接和张三说不可能进一步发展。
话说这事情都过去了这么久,书记家儿子这事还迟迟没有解决,让书记觉得有些难堪。而且,堂堂村里的媒婆,迟迟不能给别人牵线成功,这让王婆的名声也不太好。
于是,王婆在隔壁村,招录实习生,要求是心理学专业,大批大批的实习生来王婆着实习了。
张三每次让王婆去劝劝如花的时候,王婆就让自己的实习生来解决。王婆知道这事成不了,就把这事推给实习生来做,自己便可以去解决有把握的事情。这样一来,王婆的名声也就不会被毁坏,村里的人都认为是别人介绍的。张三的爹来问王婆的话,王婆也就可以把责任推给实习生了。
于是,这件事久久不能摆平…
故事的结尾留给读者自己想象吧,欢迎各位读者评论区发挥想象,帮小编完成后续。
Shell命令以及运行原理
这里的张三相当于用户,王婆相当于外壳程序,如花相当于操作系统
用户想对操作系统执行操作,但是没有办法直接和操作系统进行沟通,于是通过外壳程序。相当于张三不善于和异性沟通,通过王婆来沟通。
当用户执行的操作失败时,外壳程序无法对操作系统执行操作。相当于王婆没办法劝说如花。
外壳程序无法对操作系统执行,操作系统会对外壳程序报错信息。相当于如花的言语和行为向王婆表示自己和张三不合适。
外壳程序对用户进行提示,执行失败。相当于王婆对张三表示不可能发展关系。
此时,相信读者应该理解了外壳程序概念:
什么是外壳程序?
外壳程序是介于用户和操作系统间的软件,是命令行解释器:将使用者的命令翻译给核心(kernel)处理。同时,将核心的处理结果翻译给使用者。
为什么要有外壳程序?
(1)用户不善于直接和操作系统交互;(2)外壳的存在,可以对请求进行合法性检查,变相地保护OS。
外壳程序怎么对OS保护?
是对我们的指令进行解析,解析指令给Linux内核。反馈结果在通过内核运行出结果,通过shell解析给用户。常用的bash
就是这个操作,bash
也就相当于王婆。
什么是Shell程序?
Shell程序是外壳程序的统称,相当于媒婆,bash
是其中一个,相当于其中一个媒婆,即王婆。
后记
张三和如花的故事还没有结束,希望各位读者发挥想象,在评论区发出故事的后续…
相关文章:

张三、如花、王婆带你了解Shell命令以及运行原理
文章目录 前言概述张三、王婆、如花的故事Shell命令以及运行原理后记 前言 Linux严格意义上说的是一个操作系统,我们称之为“核心(kernel)“ ,但我们一般用户,不能直接使用kernel。而是通过kernel的“外壳”程序&…...
redis介绍和安装、redis普通连接和连接池、字符串类型、hash类型、列表类型列表类型
文章目录 redis介绍和安装安装步骤启动,连接 redis普通连接和连接池普通连接连接池 redis字符串类型redis hash类型redis列表类型 redis介绍和安装 redis 什么? 数据库就是个存数据的地方:只是不同数据库数据组织,存放形式不一样…...

集成开发环境PyCharm的使用【侯小啾python领航计划系列(三)】
集成开发环境 PyCharm 的使用【侯小啾python领航计划系列(三)】 大家好,我是博主侯小啾, 🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ�…...

Flink(九)【时间语义与水位线】
前言 2023-12-02-20:05,终于写完啦,最近状态不错。刚写完又收到了她的消息哈哈哈哈,开心。 再去全力打拼一次,奋战一场,就算最后打了败仗也无所谓,至少你留下了足迹。 《解忧杂货店》 1、时间语义 …...
torch中的随机数种子
如何在torch生成随机数时,设置随机种子,要求每次调用生成的随机数都一样 在 PyTorch 中,可以使用 torch.manual_seed(seed) 函数设置随机种子,以确保每次运行代码时生成的随机数都一样。 以下是一个示例代码,展示了如…...
C 标准库 <math.h>
C 标准库 <math.h> C <math.h>头文件声明了一组函数来执行数学运算,例如:sqrt()计算平方根,log()查找数字的自然对数,等等。 math.h 头文件定义了各种数学函数和一个宏。在这个库中所有可用的函数都带有一个 double…...

一篇带你串通数据结构
文章目录 导论数据结构的定义数据结构在计算机科学中的重要性为什么学习数据结构很重要 1、基本概念1.1、数据、数据元素和数据项的概念1.2、数据对象与数据结构的关系1.3、逻辑结构与物理结构 2、线性结构2.1、数组2.2、链表2.3、栈2.4、队列 3、非线性结构3.1、树3.2、图 4、…...

网络篇---第九篇
系列文章目录 文章目录 系列文章目录前言一、说说TCP/IP四层网络模型二、说说域名解析详细过程?三、 IP 地址分为几类,每类都代表什么,私网是哪些?四、说说TCP 如何保证可靠性的?前言 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家…...

Python基础学习快速入门
文章目录 Number变量String字符串Def函数Class类List列表Tuple元组Dictionary字典Set集合值与引用类型if条件控制Loop循环 Number变量 python直接赋值,不需要定义变量类型。不需要**,逗号结尾符 使用print**直接进行输出 #赋值 a 1.0 print(a)a 7 print(a)p…...

C语言-预处理与库
预处理、动态库、静态库 1. 声明与定义分离 一个源文件对应一个头文件 注意: 头文件名以 .h 作为后缀头文件名要与对应的原文件名 一致 例: 源文件:01_code.c #include <stdio.h> int num01 10; int num02 20; void add(int a, in…...

王道数据结构课后代码题p40 9.给定一个带表头结点的单链表,写出算法 : 按递增次序输出单链表中各结点的数据元素并释放结点 (c语言代码实现)
本题代码如下(有注释) void delete_min(linklist* head) {while ((*head)->next ! NULL)//循环到只剩下头节点{lnode* pre *head;//pre为元素最小结点的前驱结点指针lnode* p (*head)->next;//p为工作指针lnode* q;//指向被删除的结点while (p-…...
对系统的 Go 版本进行升级
方法一 直接升级系统的 Go 版本 注意以下操作仅适用于:amd64 架构的 Centos 系统。如果需要适配其他架构,需要自行编写代码实现。 手动执行: # 显示当前版本 go version # 查看环境变量 cat /etc/profile # 进入 go 的安装目录,…...

【从删库到跑路 | MySQL总结篇】事务详细介绍
个人主页:兜里有颗棉花糖 欢迎 点赞👍 收藏✨ 留言✉ 加关注💓本文由 兜里有颗棉花糖 原创 收录于专栏【MySQL学习专栏】🎈 本专栏旨在分享学习MySQL的一点学习心得,欢迎大家在评论区讨论💌 目录 一、事务…...
七牛云1024创建节-赛后有感
距离比赛结束已经过去快半个月时间,七牛云又发起了有奖征文的活动,正好借此机会记录一下自己参加这次比赛的经历,感受和一些比赛的心得。 如何了解到的比赛信息 其实我很早就开始关注七牛云了,最早是在今年二三月的时候…...

CSS 选择器优先级,!important 也会被覆盖?
目录 1,重要性2,专用性3,源代码顺序 CSS 属性值的计算过程中。其中第2步层叠冲突只是简单说明了下,这篇文章来详细介绍。 层叠冲突更广泛的被称为 CSS选择器优先级计算。 为什么叫层叠冲突,可以理解为 CSS 是 Cascadi…...
关于src别名的配置之tsconfig.json配置
tsconfig.json {"compilerOptions": {"baseUrl": "./", // 解析非相对模块的基地址,默认是当前目录"paths": { //路径映射,相对于baseUrl"/*": ["src/*"] }} } ① "baseUrl": &…...

Mybatis如何执行批量操作
文章目录 Mybatis如何执行批量操作使用foreach标签 使用ExecutorType.BATCH如何获取生成的主键 Mybatis如何执行批量操作 使用foreach标签 foreach的主要用在构建in条件中,它可以在SQL语句中进行迭代一个集合。foreach标签的属性主要有item,index&…...
LeetCode 1094. 拼车:优先队列
【LetMeFly】1094.拼车:优先队列 力扣题目链接:https://leetcode.cn/problems/car-pooling/ 车上最初有 capacity 个空座位。车 只能 向一个方向行驶(也就是说,不允许掉头或改变方向) 给定整数 capacity 和一个数组…...
项目开发维护技术文档(总结梳理)
目录 一、项目背景 二、架构设计 1.技术栈 2.架构图 3.代码结构 三、模块划分 1.用户模块 2.商品模块 四、开发规范 1.命名规范 2.代码格式 3.版本控制 五、部署流程 1.环境要求 2.部署流程 六、问题解决 1.数据库连接异常 2.Redis缓存失效 七、参考资料 项…...
01_学习使用javax_ws_rs_上传文件
文章目录 1 前言2 Maven 依赖3 上传接口4 如何解析 MultipartFormDataInput5 结语 1 前言 使用 Spring MVC 来处理文件上传,想必是大家耳熟能详的了,如下代码: ResponseBody PostMapping("/upload") public String upload(Request…...
后进先出(LIFO)详解
LIFO 是 Last In, First Out 的缩写,中文译为后进先出。这是一种数据结构的工作原则,类似于一摞盘子或一叠书本: 最后放进去的元素最先出来 -想象往筒状容器里放盘子: (1)你放进的最后一个盘子(…...
论文解读:交大港大上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化学习框架(二)
HoST框架核心实现方法详解 - 论文深度解读(第二部分) 《Learning Humanoid Standing-up Control across Diverse Postures》 系列文章: 论文深度解读 + 算法与代码分析(二) 作者机构: 上海AI Lab, 上海交通大学, 香港大学, 浙江大学, 香港中文大学 论文主题: 人形机器人…...

【入坑系列】TiDB 强制索引在不同库下不生效问题
文章目录 背景SQL 优化情况线上SQL运行情况分析怀疑1:执行计划绑定问题?尝试:SHOW WARNINGS 查看警告探索 TiDB 的 USE_INDEX 写法Hint 不生效问题排查解决参考背景 项目中使用 TiDB 数据库,并对 SQL 进行优化了,添加了强制索引。 UAT 环境已经生效,但 PROD 环境强制索…...

使用分级同态加密防御梯度泄漏
抽象 联邦学习 (FL) 支持跨分布式客户端进行协作模型训练,而无需共享原始数据,这使其成为在互联和自动驾驶汽车 (CAV) 等领域保护隐私的机器学习的一种很有前途的方法。然而,最近的研究表明&…...

前端导出带有合并单元格的列表
// 导出async function exportExcel(fileName "共识调整.xlsx") {// 所有数据const exportData await getAllMainData();// 表头内容let fitstTitleList [];const secondTitleList [];allColumns.value.forEach(column > {if (!column.children) {fitstTitleL…...
Robots.txt 文件
什么是robots.txt? robots.txt 是一个位于网站根目录下的文本文件(如:https://example.com/robots.txt),它用于指导网络爬虫(如搜索引擎的蜘蛛程序)如何抓取该网站的内容。这个文件遵循 Robots…...
C++课设:简易日历程序(支持传统节假日 + 二十四节气 + 个人纪念日管理)
名人说:路漫漫其修远兮,吾将上下而求索。—— 屈原《离骚》 创作者:Code_流苏(CSDN)(一个喜欢古诗词和编程的Coder😊) 专栏介绍:《编程项目实战》 目录 一、为什么要开发一个日历程序?1. 深入理解时间算法2. 练习面向对象设计3. 学习数据结构应用二、核心算法深度解析…...

【C++进阶篇】智能指针
C内存管理终极指南:智能指针从入门到源码剖析 一. 智能指针1.1 auto_ptr1.2 unique_ptr1.3 shared_ptr1.4 make_shared 二. 原理三. shared_ptr循环引用问题三. 线程安全问题四. 内存泄漏4.1 什么是内存泄漏4.2 危害4.3 避免内存泄漏 五. 最后 一. 智能指针 智能指…...

Unity UGUI Button事件流程
场景结构 测试代码 public class TestBtn : MonoBehaviour {void Start(){var btn GetComponent<Button>();btn.onClick.AddListener(OnClick);}private void OnClick(){Debug.Log("666");}}当添加事件时 // 实例化一个ButtonClickedEvent的事件 [Formerl…...

实战设计模式之模板方法模式
概述 模板方法模式定义了一个操作中的算法骨架,并将某些步骤延迟到子类中实现。模板方法使得子类可以在不改变算法结构的前提下,重新定义算法中的某些步骤。简单来说,就是在一个方法中定义了要执行的步骤顺序或算法框架,但允许子类…...