Linux中shell的运行原理

在Linux中,每次输入命令时,前面都会出现一串字母,我们称之为命令行提示符

实际上,命令行提示符是一种外壳程序


外壳程序的概念:

前面我们提到过,在Linux中,一切皆文件,所谓的命令就是一个可执行程序

而在执行一个命令时,不是直接交给操作系统去执行的,而是要先交给外壳程序(shell)

外壳程序介于用户和操作系统之间

外壳程序的种类:

  1. 命令行
  2. 图形化界面

为什么要有外壳程序呢?

  1. 用户是不善于直接和操作系统交互的
  2. 变相的保护了操作系统,如果用户输入的命令本身不存在或不合法,外壳程序不会交给操作系统去处理,而是直接报错

外壳程序的作用:

  1. 将用户的命令翻译给操作系统
  2. 将操作系统的执行结果返回给用户

有时,用户输入的命令有非常多的错误,且一直在重复,可能会导致外壳程序本身崩溃,为了防止这种情况,外壳程序是怎么做的?

实际上,外壳程序会创建一个个的子进程,由这些子进程去帮我们做翻译命令的工作;这样,即使命令有错误,导致崩溃的也是子进程,不会影响到外壳程序本身

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

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

相关文章

程序员的实用网站导航与推荐

当你遇到问题时 Stack Overflow:订阅他们的每周新闻和任何你感兴趣的主题Google:全球最大搜索引擎必应:在你无法使用Google的时候CSDN:聊胜于无AI导航一号AI导航二号 新闻篇 OSCHINA:中文开源技术交流社区 针对初学…

UE Windows平台下Linux的交叉编译项目打包

UE Windows平台下Linux的交叉编译项目打包 交叉编译(Cross-compilation) 使得在以Windows为中心的工作流程中工作的游戏开发者能够以Linux为目标对项目进行打包。目前,只有Windows支持交叉编译。 交叉编译支持的平台 Windows | Linux-x86_…

每日3道PWN(第二天)

ciscn_2019_n_1 参考: [BUUCTF-pwn]——ciscn_2019_n_1-CSDN博客 [BUUCTF]PWN5——ciscn_2019_n_1_ciscn_2019_n_4-CSDN博客 BUUCTF—ciscn_2019_n_1 1-CSDN博客 checksec一下 64位栈溢出 按f5查看main函数,双击可疑函数 发现含有命令执行的且发现fl…

SOCKET、TCP、HTTP之间的区别与联系

SOCKET、TCP、HTTP之间的区别与联系 一、 Socket 1、什么是socket2、为什么需要socket3、建立socket连接 二、HTTP(基于TCP) 1、HTTP的概念2、HTTP连接的特点 连接请求:一次连接连接请求:短连接(socket是长连接) 三、TCP/IP协议簇 四、HTTP、Socket…

SQL 数据库语句- 创建和管理数据库

SQL CREATE DATABASE 语句 SQL CREATE DATABASE 语句用于创建一个新的 SQL 数据库。 语法 CREATE DATABASE 数据库名称;示例 以下 SQL 语句创建了一个名为 “testDB” 的数据库: CREATE DATABASE testDB;通过这个简单的语句,你可以成功地创建一个名…

30个Python小游戏,小白练手,我都能玩一天【内附源码】

给大家带来30个 Python 小游戏,一定要收藏! 文末获取完整代码 有手就行 1、吃金币 import os import cfg import sys import pygame import random from modules import *游戏初始化 def initGame():# 初始化pygame, 设置展示窗口pygame.init()screen…

C/C++---------------LeetCode第118. 杨辉三角

杨辉三角 题目及要求动态规划在mian内使用 题目及要求 给定一个非负整数 numRows&#xff0c;生成「杨辉三角」的前 numRows 行。 示例 1: 输入: numRows 5 输出: [[1],[1,1],[1,2,1],[1,3,3,1],[1,4,6,4,1]] 示例 2: 输入: numRows 1 输出: [[1]] 提示: 1 < numRow…

ActiveMQ 反序列化漏洞(CVE-2015-5254)

ActiveMQ 反序列化漏洞 Apache ActiveMQ是一种开源的消息代理&#xff08;message broker&#xff09;&#xff0c;被广泛用于应用程序之间的消息传递。它提供可靠的消息传递模式&#xff0c;如发布/订阅、点对点和请求/响应&#xff0c;非常适合构建分布式系统和应用程序集成…

1_控制系统总体结构

1、总体结构 控制系统结构图&#xff1a; 黑色块为参数、黄色块为计算模块 1.1 其中参数含义 车辆属性参数&#xff1a; 参数含义 C α f C_{\alpha f} Cαf​自行车模型总轮胎侧偏刚度&#xff08;前轮&#xff09; C α r C_{\alpha r} Cαr​自行车模型总轮胎侧偏刚度&a…

客户案例:SMC2威胁感知升级,保障金融行业邮件安全

客户背景 某基金公司是一家在业界享有广泛声誉的综合型资产管理公司&#xff0c;总部位于广州&#xff0c;在北京、上海、香港等地区均设有公司&#xff0c;业务范围遍布全球&#xff0c;凭借其卓越的投资业绩和专业的基金管理服务&#xff0c;赢得了广大投资者的高度认可。 该…

Arduino驱动MLX90614红外测温传感器(温湿度传感器)

目录 1、传感器特性 2、测量方法 3、硬件原理图 4、控制器和传感器连线图

【代码随想录】算法训练计划38

dp 今天这三道都写过了 1、509. 斐波那契数 题目&#xff1a; 斐波那契数 &#xff08;通常用 F(n) 表示&#xff09;形成的序列称为 斐波那契数列 。该数列由 0 和 1 开始&#xff0c;后面的每一项数字都是前面两项数字的和。也就是&#xff1a; F(0) 0&#xff0c;F(1) …

数据结构第二次作业——递归、树、图【考点罗列//错题正解//题目解析】

目录 一、选择题 ——递归—— 1.【单选题】 ——递归的相关知识点 2.【单选题】——递归的应用 3.【单选题】——递归的实现结构 4.【单选题】——递归的执行与实现 5.【单选题】 ——递归算法 ——树—— 6.【单选题】 ——树的结构 *7.【单选题】——树的知识点 …

【Effective C++】条款2:尽量以const,enum,inline替换#define

一.const替换#define #define的两个缺点&#xff1a; 不便于调试&#xff0c;编译器看到的是宏替换后的值&#xff0c;报错时显示也是替换后的内容&#xff0c;不便于定位错误目标代码中出现多个替换后的内容。因为宏替换在预处理阶段完成&#xff0c;宏是不会进入记号表的。 …

MYSQL窗口函数详解和实战(内含示例)

MySQL 窗口函数提供了跨与当前行关联的分组的计算能力。 窗口函数与聚合函数不同&#xff0c;聚合函数对每个分组进行计算并为每个分组返回一行&#xff0c;而窗口函数不会将每个分组输出到一行&#xff0c;而是将每个分组的计算结果合并到与之关联的行中。 目录 一、CUME_DIS…

【Maven】依赖管理

1. 依赖管理 1.1 依赖配置 依赖&#xff1a;指当前项目运行所需要的jar包。一个项目中可以引入多个依赖。 依赖引入步骤&#xff1a;在pom.xml中编写标签&#xff0c;在标签中使用引入坐标&#xff0c;定义坐标的 groupId、artifactId、version&#xff0c;最后点击刷新&…

html css 布局layout

弹性布局 display:flex; justify-content:space-between; — 水平分布【item之间有相同的边距&#xff0c;和容器之间没边距】justify-content: space-around; — item和item之间以及和容器之间都有边距align-items: center; — 垂直居中分布align-items:stretch; — 如果item…

17. 电话号码的字母组合 经典回溯组合题目

17. 电话号码的字母组合 原题链接&#xff1a;完成情况&#xff1a;解题思路&#xff1a;参考代码&#xff1a;错误经验吸取 原题链接&#xff1a; 17. 电话号码的字母组合 https://leetcode.cn/problems/letter-combinations-of-a-phone-number/description/ 完成情况&…

c题目16:写一个递归函数,计算N阶乘

每日小语 一生中&#xff0c;最光辉的一天并非功成名就的那一天&#xff0c;而是从悲叹与绝望中产生对人生挑战与勇敢迈向意志的那一天。——福楼拜 自己思考 这个小语呢&#xff0c;我目前还达不到&#xff0c;只是顺其自然&#xff0c;很多东西做起来很有动力&#xff0c;…

AIGC: 关于ChatGPT中对输出文本进行审核

违禁词 与 logit_bias 参数 前文&#xff0c;通过GPT的API实现了一个简单的聊天机器人, 当然也可以做一些内容审核相关的应用这里有一个非常核心&#xff0c;需要重点关注的一个方向&#xff0c;就是对于文本的审核 对于一些违禁词&#xff0c;我们需要准确的识别出来&#xf…