当前位置: 首页 > news >正文

【Linux】浅谈shell命令以及运行原理

前言:上篇博文把linux下的基本指令讲解完了。本期我们聊聊Linux下【shell】命令及其运行原理。


 

目录

Shell的基本概念与作用

原理图展示

 shell命令执行原理


Shell的基本概念与作用

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

  • 大家可以从这方面进行相应的理解记忆:我们作为普通的用户,在操作系统内核看来对于普通用户来说,直接去访问或者使用操作系统内核是存在一定的不安全因素的,基于这种情况情况,操作系统在内核的外层就嵌套了一层的【shell】,虽然我们不能直接去访问内核,但是有了这层【shell】之后,我们可以通过【shell】去间接的访问操作系统内核。

注意事项:

  • 这里的【shell】与我们操作系统的“系统调用”是不一样的哟!!!系统调用是程序的事情【shell】是人机接口,是你输入命令的,这两个完全无关。你在【shell】里面输入命令,【shell】会根据你的命令执行程序,执行的程序有可能调用系统的功能。但是执行系统功能的指令,并不一定是通过【shell】发出的,通过【shell】发出的命令也不一定会执行系统调用。

说了这么多,其实理解起来就一句话,【Shell】的最简单定义:命令行解释器(command Interpreter)主要包含:

  • 将使用者的命令翻译给核心(kernel)处理。
  • 同时,将核心的处理结果翻译给使用者

原理图展示

由上图可以看出,shell 在系统中是处于中间层次的。他为用户和kernel的交互提供了一种方式,方案。

对比windows GUI,我们操作windows 不是直接操作windows内核,而是通过图形接口,点击,从而完成我们的 操作(比如进入D盘的操作,我们通常是双击D盘盘符.或者运行起来一个应用程序) 

shell 对于Linux,有相同的作用,主要是对我们的指令进行解析,解析指令给Linux内核。反馈结果在通过内核运 行出结果,通过shell解析给用户。

  • 帮助理解:如果说你是一个闷骚且害羞的程序员,那shell就像媒婆,操作系统内核就是你们村头漂亮的 且有让你心动的MM小花。你看上了小花,但是有不好意思直接表白,那就让你你家人找媒婆帮你提 亲,所有的事情你都直接跟媒婆沟通,由媒婆转达你的意思给小花,而我们找到媒婆姓王,所以我们叫 它王婆,它对应我们常使用的bash。


 shell命令执行原理

表层理解  ,我们一般做法就是:打开终端,输入命令,敲回车,等待命令运行,得到结果

那么,对于这个过程进行细致的解析,又包含了哪些东西呢?

  • 打开终端,输入命令,敲回车----IO中断
  • 等待过程:

    shell分析命令及参数----shell(一个终端位置的解释性程序)

    fork拷贝附近成pcb相关资源,为命令执行做准备----系统调用

    exec在fork得到的子进程中执行命令

  • 执行完成,返回结果----堆栈保护

注:

  • 上述的【fork】和【exec】将会在后序给大家进行讲解。


到此,关于【shell】的概念和原理便全部讲完了,后面我们还会进行实操,模拟实现一下。

最后,如果本文对您有帮助的话,希望大家不吝三连哟!!!

在这里插入图片描述

相关文章:

【Linux】浅谈shell命令以及运行原理

前言:上篇博文把linux下的基本指令讲解完了。本期我们聊聊Linux下【shell】命令及其运行原理。 目录 Shell的基本概念与作用 原理图展示 shell命令执行原理 Shell的基本概念与作用 Linux严格意义上说的是一个操作系统,我们称之为“核心(ker…...

【shell脚本】nginx服务管理及存活检测脚本实战

前言 今天终于敢说自己是csdn万粉博主了,感谢大家的厚爱,我会继续输出更多优质的好文章,一起学习。 座右铭: 先努力让自己发光,再帮助更多的人。 🏠 个人主页:我是沐风晓月 🧑 个人…...

web服务器—nginx

一、nginx介绍Nginx(“engine x”)是一款是由俄罗斯的程序设计师Igor Sysoev所开发高性能的 Web和 反向代理服务器,也是一个 IMAP/POP3/SMTP 代理服务器。和apache一样,都是web服务器软件,因为其性能优异,所以被广大运维喜欢。又因…...

网络安全工具大合集

还是一句话,功夫再高,也怕菜刀首先,恭喜你发现了宝藏。本文章集成了全网优秀的开源攻防武器项目,包含:信息收集工具(自动化利用工具、资产发现工具、目录扫描工具、子域名收集工具、指纹识别工具、端口扫描…...

什么是SHA256?比特币是如何应用SHA256算法的?

SHA 256算法是一种具有确定性的单向哈希函数 算法是执行操作的一系列步骤或过程 哈希函数是种数学函数,输入的长度任意,但是输出长度固定,可以理解为文件的数字指纹,同一个输入值,总是得相同的输出 SHA256&#xff0…...

JDK20正式发布了GA版本,短期维护支持,以及JDK21预览

最近,Oracle发布了JDK20,相比对于Java开发者来说,JDK的发版是比较收关注的事情了,小简也来和大家一起了解了解JDK20发生了什么变化呢? 首先,JDK20是一个短周期版本,有6个月的维护时间&#xff0…...

.NET/C#/GC与内存管理(含深度解析)

详情请看参考文章:.NET面试题解析(06)-GC与内存管理 - 不灬赖 - 博客园 (cnblogs.com)一、对象创建及生命周期一个对象的生命周期简单概括就是:创建>使用>释放,在.NET中一个对象的生命周期:new创建对象并分配内存对象初始化…...

Java开发 | 内部类 | 静态内部类 | 非静态内部类 | 匿名内部类

目录 1.内部类 1.1内部类的简单创建 1.2内部类的分类 1.2.1普通内部类 1.2.2静态内部类 1.3匿名内部类 1.4局部内部类 1.内部类 内部类就是一是一个类里面装着另外一个类,就像俄罗斯套娃一样。最外层的类我们叫外部类,内层的类我们叫内部类。 1…...

Portal认证

Portal认证Portal认证简介Portal认证协议Portal认证方式Portal认证流程Portal认证用户下线Portal认证简介 定义: Portal认证通常也称作Web认证,一般将Portal认证网站成为门户网站。用户上网时,必须在门户网站进行认证,如果没有认…...

论文解读:ChangeFormer | A TRANSFORMER-BASED SIAMESE NETWORK FOR CHANGE DETECTION

论文地址:https://arxiv.org/pdf/2201.01293.pdf 项目代码:https://github.com/wgcban/ChangeFormer 发表时间:2022 本文提出了一种基于transformer的siamese网络架构(ChangeFormer),用于一对共配准遥感图…...

Redis 内存优化技巧

这次跟大家分享一些优化神技如何用更少的内存保存更多的数据?我们应该从 Redis 是如何保存数据的原理展开,分析键值对的存储结构和原理。从而继续延展出每种数据类型底层的数据结构,针对不同场景使用更恰当的数据结构和编码实现更少的内存占用…...

【java】笔试强训Day2【​倒置字符串​与排序子序列】

目录 ⛳选择题 1.A 派生出子类 B , B 派生出子类 C ,并且在 java 源代码有如下声明: 2.下面代码将输出什么内容:( ) 3.阅读如下代码。 请问,对语句行 test.hello(). 描述正确的有&…...

【Linux】基础IO(一) :文件描述符,文件流指针,重定向

🍎作者:阿润菜菜 📖专栏:Linux系统编程 码字不易,请多多支持😘😘 这是目录重新认识文件系统内部的文件操作我们C语言的文件操作系统内部的文件操作OS一般会如何让用户给自己传递标志位的&#x…...

【C语言】通讯录的实现(静态版)

【C语言】通讯录的实现(静态版一.前言1.前期准备a.菜单实现b.联系人结构体的构建c.菜单选项的功能d.#define 的定义2.功能的实现a.初始化通讯录b.增加联系人c.显示通讯录d.查找联系人e.修改联系人d.删除联系人3. 总代码test.ccontact.ccontact.h一.前言 本文将会用c语言实现一…...

IDEA一键构建Docker镜像

效果 Idea右击Dockerfile文件,直接在服务器构建docker镜像 开整 1、下载docker插件 2、编写Dockerfile文件 # 基础镜像 FROM openjdk:8-jdk-alpine # 工作目录 WORKDIR /opt/apps/gateway/logs/ # 文件拷贝,把target目录下的jar报拷贝到镜像的/APP/目录下 ADD…...

QT的使用3:鼠标事件

鼠标事件0 事件1 需求2 查看控件的事件处理函数3 UI设计4 新建一个类,继承QLabel5 对已有对象进行类型提升6 重写事件处理函数7 项目进一步拓展(1)获取鼠标按键(2)鼠标移动(3)显示多个按键&…...

线程安全之单例模式

文章目录前言一.什么是单例模式二.在java中的单例模式2.1 饿汉式的介绍2.2 懒汉式的介绍三 懒汉式的单例模式,线程不安全的解决方式3.1 造成线程不安全的原因3.2 解决方案3.3 总结前言 这篇文章,我们会介绍一下单例模式,但这里的单例模式,不是我们所说的设计模式,当然听到设计…...

“二分”带来“十分”快感——二分思想的奥秘解析

文章目录无处不在的二分思想二分查找惊人的查找速度二分查找的递归与非递归实现1.循环退出条件2.mid的取值3.low和high的更新最后说一句🐱‍🐉作者简介:大家好,我是黑洞晓威,一名大二学生,希望和大家一起进…...

一台服务器最大能支持多少条 TCP 连接?问倒一大片。。。

一台服务器最大能打开的文件数 限制参数 我们知道在Linux中一切皆文件,那么一台服务器最大能打开多少个文件呢?Linux上能打开的最大文件数量受三个参数影响,分别是: fs.file-max (系统级别参数)&#xf…...

蓝桥杯嵌入式RTC实时时钟

文章目录 前言一、RTC是什么二、cubemx的配置三、函数的使用总结前言 本篇文章将给大家介绍RTC实时时钟。 一、RTC是什么 STM32的实时时钟RTC是一个独立的定时器,RTC时钟内部依靠BCD码计数。RTC实时时钟提高时钟、闹钟、日历功能。RTC功耗较低,可以使用在低功耗设备上。 …...

大麦抢票自动化工具:3分钟提升10倍成功率的技术秘籍

大麦抢票自动化工具:3分钟提升10倍成功率的技术秘籍 【免费下载链接】ticket-purchase 大麦自动抢票,支持人员、城市、日期场次、价格选择 项目地址: https://gitcode.com/GitHub_Trending/ti/ticket-purchase 你是否经历过这样的场景&#xff1f…...

MATLAB 2018B语音信号降噪与盲源分离GUI系统,多维滤波技术展示与实时外放体验

2-6 基于matlab 2018B的语音信号降噪和盲源分离GUI界面,包括维纳滤波,小波降噪、高通、低通、带通滤波,及提出的滤波方法。 每个功能均展示降噪前后声音效果并外放出来。 程序已调通,可直接运行。直接双击运行main.m,耳…...

从零开始:Windows与Ubuntu20.04双系统安装全指南

1. 为什么需要双系统? 对于很多刚接触Linux的朋友来说,直接在物理机上安装Ubuntu可能会有点担心。毕竟Windows用习惯了,万一Ubuntu用不顺手怎么办?这时候双系统就是最好的解决方案。我自己的第一台开发机就是WindowsUbuntu双系统&…...

bat批处理命令

一、 什么是 .bat 文件?.bat 文件是一个文本文件,里面包含了一系列 CMD(命令提示符) 命令。当你双击这个文件时,系统会按顺序逐条执行里面的命令。二、 如何开始?创建文件:新建一个文本文件&…...

TensorRT实战:从模型转换到部署推理的完整指南

1. TensorRT入门:为什么选择它? 如果你正在寻找一种能够让你的深度学习模型在生产环境中飞起来的方法,TensorRT绝对是你的不二之选。简单来说,TensorRT是NVIDIA推出的高性能推理优化器和运行时引擎,专门为NVIDIA GPU设…...

UMA模型深度解析:机器学习加速的科学计算革命与高通量筛选架构揭秘

UMA模型深度解析:机器学习加速的科学计算革命与高通量筛选架构揭秘 【免费下载链接】ocp Open Catalyst Projects library of machine learning methods for catalysis 项目地址: https://gitcode.com/GitHub_Trending/oc/ocp 在计算材料科学与催化研究领域…...

foobox-cn:让foobar2000从工具变身艺术品的终极美化方案

foobox-cn:让foobar2000从工具变身艺术品的终极美化方案 【免费下载链接】foobox-cn DUI 配置 for foobar2000 项目地址: https://gitcode.com/GitHub_Trending/fo/foobox-cn 你是否还在忍受foobar2000那过于朴素的默认界面?是否觉得功能强大的播…...

Verilog条件语句实战:如何避免if-else嵌套中的常见陷阱?

Verilog条件语句实战:如何避免if-else嵌套中的常见陷阱? 在数字电路设计中,条件语句的正确使用直接关系到电路的功能实现和性能表现。Verilog作为硬件描述语言,其if-else和case语句的灵活运用是每位工程师必须掌握的技能。但看似简…...

基于MATLAB的图像加密解密系统 可以正确无误的对图像进行加密和解密 带GUI界面

基于MATLAB的图像加密解密系统 可以正确无误的对图像进行加密和解密 带GUI界面,一步一步完整运行你是否有过这样的疑问——如何让一张普通图片变成外星密文?在MATLAB里玩转图像加密真的可以像搭积木一样简单。今天咱们就来捣鼓一个带界面的图像加密系统&…...

Fish Speech 1.5在医疗健康领域的语音辅助应用

Fish Speech 1.5在医疗健康领域的语音辅助应用 1. 引言 在医疗健康领域,清晰准确的语音交流至关重要。医生需要向患者解释病情,护士要按时提醒用药,患者可能因为视力问题无法阅读病历资料。传统的文字信息在这些场景中往往显得不够直观和便…...