Linux中shell的运行原理

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

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


外壳程序的概念:

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

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

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

外壳程序的种类:

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

为什么要有外壳程序呢?

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

外壳程序的作用:

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

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

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

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

关于神舟-战神TA5NS系统重装问题

加装固态卡在log处无法开机问题 下面是我的步骤 1.按f7选择pe安装系统,然后发现卡在战神log处不转动 2.下载驱动 TA5NS驱动地址 下载RAID驱动(如果没有私信我,我网盘里有),拷到u盘中,然后进入pe系统里面…

深度学习之网络优化与正则化

视频链接:7.1 神经网络优化的特点_哔哩哔哩_bilibili 神经网络优化的特点 网络优化的难点 (1)网络结构差异大:不同模型之间的结构差异大——没有通用的优化算法、超参数多 (2)非凸优化问题:…

仓库管理系统【GUI/Swing+MySQL】(Java课设)

系统类型 Swing窗口类型Mysql数据库存储数据 使用范围 适合作为Java课设!!! 部署环境 jdk1.8Mysql8.0Idea或eclipsejdbc 运行效果 本系统源码地址: 更多系统资源库地址:更多Java课设系统 更多系统运行效果展示…

十三、FreeRTOS之FreeRTOS时间管理

本节主要介绍以下内容: 1,延时函数介绍(了解) 2,延时函数解析(熟悉) 3,延时函数演示实验(掌握) 4,课堂总结(掌握) 一、…

华盛顿特区警方推荐购买 AirTag防止高端夹克被窃

根据美国媒体 Fox5 报道,近期由于天气变冷,华盛顿特区已发声多起高端 Canada Goose 夹克被窃事件。这些被偷走的加拿大鹅夹克价格从几百到几千美元不等,“Canada Goose”LOGO较为明显,很容易被小偷发现。 对此,警方建…

基于javaweb存钱小管家网页计划书

基于javaweb存钱小管家网页计划书 系统开发工具:idea 编程语言:Javaweb 数据库:MySQL 用户功能大致如下 需求 1. 功能性需求: (1)通用功能: 用户、管理员:用户包括注册和登录…

行业内卷严重到什么程度了?

一.内卷现状 最近大家都吐槽找工作难,确实很难。 不得不说,现在找工作的难度是以前的很多倍。甚至可以说地狱级都不为过。 以前只要简历一挂到网上,就有很多电话打过来。特别是在一线城市,各种类型企业的HR都来找,希…

【C++】POCO学习总结(九):网络

【C】郭老二博文之:C目录 1、Poco::Net::IPAddress IP地址 Poco::Net::IPAddress类存储IPv4或IPv6主机地址。 Poco::Net::IPAddress可以从字符串解析,也可以格式化为字符串。支持IPv4格式(d.d.d.d)和IPv6格式(x: x: x: x: x: x: x: x)。 常用函数&…

【Maven】安装和使用

1. Maven 概述 Maven 是一款用于管理和构建 java 项目的工具,可以进行依赖管理、统一项目结构和项目构建。 1.1 Maven 模型 项目对象模型 (Project Object Model)依赖管理模型(Dependency)构建生命周期/阶段(Build lifecycle & phases) 1.2 Maven 仓库 仓库的…

Educational Codeforces Round 159 (Rated for Div. 2) 之 A - E 题

目录 [A. Binary Imbalance](https://codeforces.com/contest/1902/problem/A)DescriptionSolutionCode [B. Getting Points](https://codeforces.com/contest/1902/problem/B)DescriptionSolutionCode [C. Insert and Equalize](https://codeforces.com/contest/1902/problem/…

7_企业架构MySQL读写分离

企业架构MySQL读写分离 学习目标和内容 1、能够理解读写分离的目的 2、能够描述读写分离的常见实现方式 3、能够通过项目框架配置文件实现读写分离 4、能够通过中间件实现读写分离 一、背景描述及其方案设计 1、业务背景描述 时间:2014.6.-2015.9 发布产品类型&…

美股电动汽车股票分析:蔚来和Rivian这两只都遭受了重创的股票,哪个更值得投资?

来源:猛兽财经 作者:猛兽财经 Rivian(RIVN)和蔚来(NIO)都是目前美股市场上最受关注的电动汽车股票。虽然蔚来在全球最大的电动汽车市场中国扮演着重要角色,但Rivian也击败了很多传统汽车制造商,并成为了第一家在美国推出全电动皮…

1970-2022年中国省级国家级开发区数据集

1970-2022年Z国省级国家级开发区数据集 1、时间:1970-2022年 2、指标:单位名称、所属区域、所属省份、所属级别、开发区类型、关注热度、成立时间、核准面积、主导产业、地址、联系电话、经纬度 3、范围:2781个开发区 4、来源&#xff1a…

MySQL5 和 MySQL8 的配置区别 一些注意事项

1、使用命令行查看MySQL的版本 先保证你的mysql正在运行,假如用户名是root,密码是123456,运行下边的代码可以查看mysql的版本号。 mysql -uroot -p123456这里我的版本是5.7.19。也就是5版本的。 2、不同版本对应的数据库驱动jar包&#x…

更换cmd下默认选择Python解释器

问题 我的电脑里有多个Python解释器,一个是自己下载的python37,版本是3.7.0,一个是anaconda的base环境,版本是3.7.4,还有虚拟环境里的python解释器。 最近发现,在cmd下输入python,使用的是anac…

ctfshow sql 186-190

186大小写绕过 1 order by 3-- 发现union select被过滤,用大小写来绕过 1 union seleCT 1,2,database() --1 union seleCT 1,2,table_name from information_schema.tables where table_schemactfshow_web --1 union seleCT 1,2,column_name from information_schem…

CMake中的CACHE关键字

2023年12月5日,周二晚上 在 CMake 中,CACHE 关键字用于在变量定义时将其值缓存起来,以便在后续的 CMake 运行中重用。这对于在多次构建过程中保持变量的持久性和一致性非常有用。 当使用 CACHE 关键字定义一个变量时,CMake 将会为…

Hadoop学习笔记(HDP)-Part.13 安装Ranger

目录 Part.01 关于HDP Part.02 核心组件原理 Part.03 资源规划 Part.04 基础环境配置 Part.05 Yum源配置 Part.06 安装OracleJDK Part.07 安装MySQL Part.08 部署Ambari集群 Part.09 安装OpenLDAP Part.10 创建集群 Part.11 安装Kerberos Part.12 安装HDFS Part.13 安装Ranger …

万应低代码:智能化引领新工业时代

2002年,党的十六大首次提出新型工业化,即“坚持以信息化带动工业化,以工业化促进信息化,走出一条科技含量高、经济效益好、资源消耗低、环境污染少、人力资源优势得到充分发挥的新型工业化路子”。 党的二十大报告提出&#xff0…

Python编程技巧:多层for循环的高级应用

更多资料获取 📚 个人网站:ipengtao.com Python的for循环结构是编程中最基础也是最常用的控制结构之一。通过for循环,可以轻松遍历数据集合和执行重复的操作。然而,当我们面对多层for循环时,性能和可读性可能会成为挑…