【Linux】Shell 命令以及运行原理

简介: 【Linux】Shell 命令以及运行原理

如何理解?为什么不能直接使用 kernel?

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

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

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


张三是一个闷骚且害羞的程序员,不擅长和女生交往,Shell 就像媒婆,操作系统内核就相当于村里漂亮且让张三感到心动的一位女生名叫如花。

张三看上了她,但是又不好意思直接去向她表白,于是张三就让家人找媒婆去帮他提亲,所有的事情张三都直接跟媒婆沟通,由媒婆(Shell)转达他的意思给如花,而家人找到的媒婆她姓王,所以大家都叫它王婆(bash),王婆就对应我们常使用的 bash。

如花拒绝了他的提亲,就相当于用户给操作系统下达的命令操作系统做出了反馈,然后由王婆将反馈告知张三。张三得知了这个消息,非常不甘心,就让王婆帮他继续去说,王婆又去了,但是当王婆要进如花家的门时,她看到了小花竟和李四正手拉手,双方家长也见了面,王婆看到这就知道张三的事铁定成不了了,为了防止张三做出过激行为,王婆就直接拒绝了张三的请求。
那么王婆没有将请求送到小花家,就是自动做出判断拒绝了张三的请求,也就相当于 Shell 阻止了用户下达的危险指令,从而间接的保护了操作系统。

张三的父亲是村长,他特意交代把这件事情交给王婆,让她去办了,王婆迫于张三村长父亲的压力,同时也不想砸了自己的招牌,王婆得想个办法解决这个棘手的问题。于是她想到通过招聘实习生,每当张三要再次去小花家说媒的时候王婆就派一个实习生过去,无论实习生最终是谈成功了还是失败了都与我王婆无关,只要有去办这件事就行。
那么这里王婆的这个办法就相当于 Shell 创建子进程去执行用户命令,无论是执行失败还是成功都不会影响 Shell 进程。

张三(用户)为什么不直接去找小花(操作系统内核)呢?

因为不擅长。

媒婆(Shell)存在的价值是什么?

解决张三 “不擅长” 的问题以及保护如花(操作系统内核)。


【结论】

普通用户不擅长直接去访问操作系统,Shell 外壳就是用来将用户的需求传递给操作系统,同时也可以保护操作系统(假如用户有非法操作)。

【思考】

Shell VS Bash,这两者有什么区别呢?

Shell 是对所有外壳程序的统称,而 Bash 是某一个具体的 Shell。Bash 也是许多 Linux 发行版的默认 Shell。


相关文章
|
16小时前
|
Linux
Linux yum 运行时提示编码问题错误
Linux yum 运行时提示编码问题错误
8 3
|
17小时前
|
缓存 监控 安全
Linux top命令详解:持续监听进程运行状态
Linux top命令详解:持续监听进程运行状态
12 3
|
16小时前
|
Linux C语言 C++
Linux 下centos 查看 -std这个编译时命令 是否支持 C17
Linux 下centos 查看 -std这个编译时命令 是否支持 C17
7 2
|
1天前
|
监控 Linux Shell
探索Linux命令nice:优雅地调整进程优先级
`nice`命令在Linux中用于调整进程优先级,影响资源分配。它允许设置-20到19的nice值,数值越低,优先级越高。在数据处理时,使用`nice`可控制任务优先级,避免占用全部CPU资源。例如,`nice -n 10 command`以低优先级启动`command`。注意不要过度使用,应根据系统负载和需求谨慎调整。使用`renice`可改变已运行进程的优先级,生产环境操作需谨慎。
|
1天前
|
安全 Linux 数据安全/隐私保护
探索Linux命令newuidmap:用户ID映射的利器
`newuidmap`是Linux工具,用于在用户命名空间中设定UID映射,支持容器安全。它允许限定容器内进程的主机系统权限,确保数据安全和隔离。通过映射文件或命令行参数定义UID映射,提供灵活性和安全性。例如,为Docker容器设置映射,使进程能访问特定UID的数据文件。使用时需注意映射准确性、权限控制和避免映射过多UID。与其他工具如`newgidmap`配合使用以增强用户命名空间支持。
|
1天前
|
安全 数据挖掘 Linux
深入理解Linux命令:newgrp
`newgrp`命令在Linux中用于切换用户默认组,便于访问特定组的文件。它更改当前会话的默认组,新创建的文件将属于这个新组。主要参数是目标组名,可选 `-` 参数允许从stdin输入组密码。实例中,数据分析师通过`newgrp data_analysis`切换到`data_analysis`组来访问受限文件。注意权限、密码安全和会话限制。最佳实践包括明确切换需求、记录操作和安全处理密码。
|
1天前
|
Linux
Linux yum 运行时提示编码问题错误
Linux yum 运行时提示编码问题错误
6 0
|
1天前
|
安全 Linux 数据处理
探索Linux命令newgidmap:用户命名空间与GID映射的桥梁
`newgidmap`是Linux工具,管理用户命名空间的GID映射,关键用于容器技术如Docker。它设置GID映射以确保隔离环境中进程的权限,避免ID冲突。通过映射文件或命令行参数设定主机GID到命名空间GID的对应,保证进程能安全访问文件。在Docker场景中,`newgidmap`配合映射文件调整进程PID的GID映射,确保数据处理任务有适当权限。使用时注意映射准确性、安全性和与其他工具的协同。
|
10月前
|
安全 关系型数据库 MySQL
Linux学习笔记——Linux基本命令篇(三)
Linux学习笔记——Linux基本命令篇(三)
|
10月前
|
Linux 数据库 数据安全/隐私保护
Linux学习笔记——Linux基本命令篇(二)
Linux学习笔记——Linux基本命令篇(二)