shell运行原理

前言

前一段时间由于身体的缘故和一些琐事,好久没有更新Linux的博文了。从本篇博文开始会接着以前的内容一直持续更新!

本期类容介绍

为什么存在shell外壳?

什么是shell外壳?

shell外壳是如何工作的?

一、为什么存在shell外壳?

Linux广义上说是内核+外壳组成的,内核就是说操作系统的内核,外壳为就是在内核周围的一个可执行程序(命令行的等你输入,并给你输出的那个)。

狭义上讲,Linux是一款操作系统,只有单纯的内核组成。但是Linux的内核是非常复杂的,我们一般的使用者(用户)是无法直接和内核进行正常的交互的!主要的原因有两方面:一是内核操作难度很大一般用户容易控制不住,二是一般的用户可能在直接访问内核时会有一些非法的或不安全的操作会造成内核的安全问题!总之,就是一般的用户对内核操作很困难!此时,是通过内核的外壳程序即所谓的shell来与内核直接交互的!

举个栗子:

假设你要开车去上班,你是不是与车要交互呀!你是直接去打开发动机去与车交互在发动机那块让车起来的吗?不是吧!你开车直接与发动机交互的话是不是很难也很不安全呀!你只需要拿着钥匙,转一下。让钥匙这个对象帮你去与发动机交互呀!这里也是一样的!你不需要直接与内核交互,你只需要与内核周围的shell外壳进行交互即可!

这里也就知道了为什要存在shell外壳了:原因是用户不能直接访问操作系统的内核!

二、什么是shell外壳?

shell是一款内核的外壳程序。

从技术角度最简单的shell的定义是:命令行解释器!

它的核心就是将用户输入的指令翻译给内核处理,同时将内核的处理结果反馈给用户!

举个栗子:

就很像你一开始谈对象的时候的那个中间人一样!你把你的想法告诉中间人,中间人告诉你的意中人,你的意中人处理后的结果在给中间人,中间人在反馈给你!

OK,看看实际操作:

对比win的GUI,我们在操作win的时候也不是直接对win的内核直接操作的,而是通过点击图标进行的,其实点击的图标类似于我们这里的shell外壳!只不过win将shell外壳图形化了!同理shell对于Linux有相同的作用,主要是对我们的指令进行解析,然后内核,然后将内核的结果解析反馈给用户!

三、shell外壳是如何工作的?

我们上面刚刚解说过shell外壳本质是一款执行起来的程序(进程)!

他的工作方式主要是:

1、低风险的操作自己亲自去执行。

2、困难的、有风险的让shell外壳创建的子进程去尝试!

每次你登录xshell的时候系统会给你当前登录的用户创建一个shell外壳程序只不过名字不一样!一般是bash!我们登录上去看看!命令解释器不只是有shell, shell如果是媒婆的话,那么bash就是王婆,sh就是李婆!

低风险的自己去做我可以理解,但是有风险的不应该自己去做吗?简单的不应该让子进程去做吗?是的!现实生活中的很多是这样的!但是这个不同!如果高风险的操作自己亲自去做当前进程挂了咋办?是不是直接出问题了!所以为了保险起见,让子进程去执行高风险的操作,这样即使子进程挂科,shell还在,还可以继续正常工作!OK,我们可以写一个代码看看:

#include <stdio.h>
#include <sys/types.h>
#include <unistd.h>int main()
{printf("我的pid:%d \n", getpid());//获取子进程printf("我的父进程的pid:%d\n",getppid());//获取父进程return 0;
}

shell一看这是用户写的,是不是有风险呀!所以就让子进程去执行了!

OK,shell的运行原理暂时只能介绍到这里了,后面的知识学了会在后面介绍的!下面我将所有的内容用一个例子来帮助理解一下:

假设你是一个从小就学习很好的学生,高考后考上了大学学的计算机,你也比较刻苦每天专心在学习,等到毕业后你的技术已经超过了学校的同龄人!也如愿的找到了一份满意的工作,但是过了两年后你爹坐不住了,每天催你找对象结婚!但是大学时期你每天都在和电脑打交道,与电脑交流是非常熟悉的,但是与人交流不行了!害羞,社恐!这是你爹看出你的窘迫于是问你儿啊你看上哪家的菇凉了,你爹我认识村东头的王婆,她可是远近闻名!你爹我好嘚也是一个村长,我让她帮你问问保准可以成!你同意了,你爹找来了王婆,你说你看上了隔壁的翠花,于是王婆得知后就去隔壁家问了!但王婆一到翠花家里就发现,翠花和张三好上了。。。于是王婆不好意思的回来,想着哎呦这可咋办嘛,人家是村长不好得罪,但是这里强行问的话或有被骂的风险,毁坏了我王婆的名声。于是他就让她的徒弟替他去问了,结果出事情了,但是王婆给村长的就是是徒弟业务不行,这次搞砸了,下次遇到好的我给你推荐!这样下来给了村长家一个交代,也自己的名声好着了!

你就是用户,王婆就是shell\bash\sh等命令行解释器,王婆的徒弟就是子进程,翠花就是内核!

OK,本期内容就到这里,下期我们再见!

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

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

相关文章

【办公类-16-07-03】“2023下学期 周计划-户外游戏 每班1周五天相同场地,6周一次循环、有场地、贴墙版”(python 排班表系列)

作品展示——有场地说明 背景需求&#xff1a; 前期做了一份“贴周计划”用的班主任版的户外游戏安排表&#xff08;中X班19周&#xff0c;没有场地&#xff09; 【办公类-16-07-02】“2023下学期 周计划-户外游戏 每班1周五天相同场地&#xff0c;6周一次循环”&#xff08;…

认识TypeScript 中的接口和类

&#x1f3ac; 江城开朗的豌豆&#xff1a;个人主页 &#x1f525; 个人专栏 :《 VUE 》 《 javaScript 》 &#x1f4dd; 个人网站 :《 江城开朗的豌豆&#x1fadb; 》 ⛺️ 生活的理想&#xff0c;就是为了理想的生活 ! 目录 接口 类 江城开朗的豌豆 在 TypeScript 中&…

企业办公终端文件数据\资料防泄密管理系统——天锐绿盾 | 防泄密软件——自动智能透明加密保护核心数据资料,防止外泄

其“数据防泄密系统”是一套从源头上保障数据安全和使用安全的加密软件系统&#xff0c;已全面覆盖Linux、Mac、Windows系统&#xff0c;可进行各类型文档加密、音视频加密、源码加密、Cad图纸加密、多种类型设计稿源文件加密。 PC端&#xff1a;https://isite.baidu.com/site/…

移动通信相关知识学习笔记

一、移动通信架构简图 移动无线的接入网是专指各种基站设备。核心网就是各种交换机。 二、无线信号基本原理 无线网络中&#xff0c;使用AP设备和天线来实现有线和无线信号互相转换。如上图所示&#xff0c;有线网络侧的数据从AP设备的有线接口进入AP后&#xff0c;经AP处理为…

Maxwell - 增量数据同步工具

前言 今天来学习一个新的大数据小工具 Maxwell &#xff0c;它和 Sqoop 很像。Sqoop主要用于在 Hadoop &#xff08;比如 HDFS、Hive、HBase 等&#xff09;和关系型数据库之间进行数据的批量导入和导出&#xff0c;而 Maxwell 则主要用于监控数据库的变化&#xff08;通过监控…

基于MATLAB的QPSK调制解调仿真(仿真图超多,结果超清晰)

基于MATLAB的QPSK调制解调仿真(包含中间各个环节的时域波形、功率谱、频谱图、星座图和眼图、理论与仿真的误码率曲线) 目录 前言 一、QPSK调制解调过程 二、仿真结果 Ⅰ、码元信噪比eb/n010dB时 1、双极性不归零基带信号 2、成型滤波(根升余弦滤波)后 3、调制后 4、加入…

Linux CentOS stream 9 firewalld

随着互联网行业快速发展&#xff0c;服务器成为用户部署网络业务重要的网络工具&#xff0c;但随之而来的就是更密集的网络攻击&#xff0c;这给网站带来了很大的阻碍。防火墙作为保障网络安全的主要设备&#xff0c;可以很好的抵御网络攻击。 防火墙基本上使用硬件和软件两种…

深度学习(16)--基于经典网络架构resnet训练图像分类模型

目录 一.项目介绍 二.项目流程详解 2.1.引入所需的工具包 2.2.数据读取和预处理 2.3.加载resnet152模型 2.4.初始化模型 2.5.设置需要更新的参数 2.6.训练模块设置 2.7.再次训练所有层 2.8.测试网络效果 三.完整代码 一.项目介绍 使用PyTorch工具包调用经典网络架构…

PCIe学习笔记(2)错误处理和AER/DPC功能

文章目录 PCIe ErrorAER (Advanced Error Reporting)DPC (Downstream Port Containment) 处理器上错误通常可分为detected和undetected error。Undetected errors可能变得良性(benign)&#xff0c;也可能导致系统故障如silent data corruptions (SDC)。Detected errors则又可分…

MySQL基础学习

MySQL基础 注意&#xff1a;本文的图片截图自尚硅谷MySQL笔记。 一&#xff1a;基本概述&#xff1a; 什么是数据库&#xff1a; 数据库是一种用来存储和管理数据的系统。它是一个组织化的数据集合&#xff0c;可以通过计算机系统进行访问、管理和更新。数据库可以存储各种…

如何使用CloakQuest3r获取受安全服务保护的网站真实IP地址

关于CloakQuest3r CloakQuest3r是一款功能强大的纯Python工具&#xff0c;该工具可以帮助广大研究人员获取和查看受Cloudflare和其他安全服务商保护的网站真实IP地址。 Cloudflare是一种广泛采用的网络安全和性能增强服务&#xff0c;而CloakQuest3r的核心任务就是准确识别隐…

怎么在抖音带自己的货?带货方式和带货要求,如下所示

我是王路飞。 不管你是无货源的新手小白&#xff0c;还是有货源的厂家/供应链&#xff0c;想在抖音卖货的话&#xff0c;无非就两种方式&#xff1a;要么开店、要么开直播带货。 看似都是在抖音卖货&#xff0c;但其实这是两条不同的赛道。 这篇文章就给你们聊下想在抖音卖货…

【Redis】理论进阶篇------Redis的持久化

一、前言 前面学习了Redis的相关的十大数据类型以及用SpringBoot集成我们的Redis的工具代码的书写。从这篇文章开始&#xff0c;就会从Redis相关的一些理论&#xff08;也是面试和工作的热点知识&#xff09;如&#xff1a;Redis的持久化、Redis的订阅发布模型、Redis集群环境搭…

用python绘制黄金价格变化曲线

首先你得从mt4把数据导出为csv&#xff1a;mt4如何导出数据-CSDN博客 1、引入必要的库 import numpy as np import pandas as pd import matplotlib.pyplot as plt 2、然后通过pandas载入csv数据 raw pd.read_csv("XAUUSDm1.csv", headerNone, index_colNone, p…

P1024 [NOIP2001 提高组] 一元三次方程求解题解

题目 有形如&#xff1a;这样的一个一元三次方程。给出该方程中各项的系数&#xff08;a,b,c,d均为实数&#xff09;&#xff0c;并约定该方程存在三个不同实根&#xff08;根的范围在−100至100之间&#xff09;&#xff0c;且根与根之差的绝对值≥1。要求由小到大依次在同一…

文件包含+文件上传漏洞(图片马绕过)

目录 一.文件包含二.文件上传三.图片马四.题目 一.文件包含 将已有的代码以文件形式包含到某个指定的代码中&#xff0c;从而使用其中的代码或者数据&#xff0c;一般是为了方便直接调用所需文件&#xff0c;文件包含的存在使得开发变得更加灵活和方便&#xff08;若对用户输入…

网络安全-pikachu之文件上传漏洞1

文件上传漏洞是危害极大的&#xff0c;一旦成功&#xff0c;可以获取服务器的最高权限。 pikachu介绍&#xff1a; 文件上传功能在web应用系统很常见&#xff0c;比如很多网站注册的时候需要上传头像、上传附件等等。当用户点击上传按钮后&#xff0c;后台会对上传的文件进行判…

☀️将大华摄像头画面接入Unity 【1】配置硬件和初始化摄像头

一、硬件准备 目前的设想是后期采用网口供电的形式把画面传出来&#xff0c;所以这边我除了大华摄像头还准备了POE供电交换机&#xff0c;为了方便索性都用大华的了&#xff0c;然后全都连接电脑主机即可。 二、软件准备 这边初始化摄像头需要用到大华的Configtool软件&#…

【知识点】CNN中concat与add的区别

cat操作经常用于将特征联合&#xff0c;多个卷积特征提取框架提取的特征融合或者是将输出层的信息进行融合&#xff1b;而add层更像是信息之间的叠加。 add是在一个特征上增加其语义信息&#xff0c;对最终的图像的分类是有益&#xff1b;cat导致的结果改进可能是由于cat操作通…

工业自动化部署选择主板的关键因素

**在构建任何计算机时&#xff0c;选择合适的主板至关重要。**对于游戏台式机&#xff0c;您需要选择能够支持您玩的游戏类型而不会出现任何问题的最新和最佳规格。当涉及工业应用时&#xff0c;影响您决策的变量变得更加重要。作为任何基于计算的应用中最关键的组件之一&#…