浅谈操作系统的神秘外壳 —— shell

本文探讨了shell在Linux系统中的角色,它是介于用户和操作系统内核之间的外壳程序,负责解释和传递用户指令。重点介绍了bash作为命令行shell的作用以及其保护操作系统安全的机制。
摘要由CSDN通过智能技术生成

本篇如有不解之处,请查看 Linux 专栏历史拙作 ^ ^

在本篇开始之前,请先思考在 Linux 系统中一条指令究竟是如何运行跑起来的

大部分指令就是文件

在我们历史所学的 大部分 指令,狭义上理解,其本质就是 我们系统磁盘当中 特定目录下的 可执行文件所以指令可安装可卸载!!! ,所以如果哪天卸了你 Linux 系统里的某个指令,那注定是运行不了的!!!如下图:
 指令本质

用户执行某种功能的时候,不是让操作系统执行对应的指令的,而是先交给外壳程序

关于 bash

首先在我们系统中存在一个特定程序,也就是 bash 程序(指令)
 bash
这个程序一旦启动就会在屏幕上显示如下图所示的场景,也就是在我们输指令之前所看到的
 bash
其实这是 命令行提示符,也就是一个字符串
这个字符串 外面是一对中括号 ,里面分别是: 用户名、主机名和路径 ,也就是 printf 打出来的(Linux 里也有 printf ),我们平时在键盘里输入一条指令,也就是我们输入的一个字符串被特定的程序 bash 读入,所以 bash 也就是获取你输入的程序

什么是 shell

 外壳程序

  1. 如上图,在最中心的部分才是操作系统最核心的,也就是 操作系统内核 ,用户是无法直接访问操作系统的;
  2. 为了让我们更好的访问它,在任何一款操作系统中,都会给我们包裹如上图所示的 中间软件层(介于操作系统内核和用户之间) ,也就是 外壳程序,也就叫做 shell 程序 ,上网一查便知, shell 就是外壳的意思 。那么 最典型的两种外壳程序 就是 图形化界面(桌面) 和 命令行(bash) 。说个例子:在我们 windows 系统开机的时候,最后一步就是加载桌面;登录 Linux 系统时,看到命令行提示符就说明 Linux 系统开起来了,而之前的步骤就是在加载 真正的操作系统,也就是 内核

shell 的作用

 三者关系图
如上图所示,可以总结以下两点:

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

简单来说就是命令行解释器!!!

shell 因何存在

  1. 用户本身根本就不擅于和操作系统(OS)交互
  2. 因着外壳的存在可以对用户的请求进行是否合法的检测,变相保护操作系统(OS),就是说如果用户连指令都输不明白,干嘛还要传给操作系统执行错误指令呢?

要明白用户输入的指令是有风险的!!!每一次在进行命令行执行时,并不是 bash 直接给我们执行,而是会创建一个子进程,让这个子进程帮用户进行命令行解释,而真正的 bash 主进程只要进行等待即可,所以指令执行成功与否,都影响不到 bash 主进程

什么是 bash

结果上面的解释,不难知道 bash 就是 shell 命令的一种 ^ ^

  • 5
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值