Linux系统篇,指令(四):shell命令及运行原理

系列文章目录

第一章 Linux指令的认识


文章目录


前言

  本节为学习Linux指令的第四节内容,本节知识本应与第三节捆绑,但由于本人对学习内容的错误认识,造成分节错误。废话不说了,让我们开始学习Linux的shell机制。


一、认识命令行成分

  命令行由四部分组成,如图:

  #为提示符号,并且是root专属的,普通用户提示符则为"$"。命令行不是系统输入输出的接口,其实它是一个叫外壳程序提供打印的以实现我们的操作


二、外壳系统与操作系统内核

2.1 外壳系统

  外壳系统又名Shell,是在外部的保护系统,负责对其内部的操作系统内核进行各种操作。

Shell:外壳,包裹在内核外面,负责接收用户命令、翻译给内核执行,是人跟内核沟通的桥梁。

  我们平常在命令行上输入的内容,其实本质是字符串 ,这些字符串会被外壳系统接受并转为可运行指令发送给内核,从而执行功能,并将结果返回输出。

  从技术⻆度,Shell的最简单定义:命令⾏解释器(commandInterpreter)主要包含:

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

2.2 操作系统内核

  操作系统内核简称内核,是接受并执行命令的关键结构,能够负责数据的改变。

内核(Kernel):系统内核,负责底层硬件管理、进程、内存、文件系统,躲在底层不直接跟人交互。


三、外壳存在的意义及在Linux中的体现

  ****那我们为什么不直接向内核操作,而使用外壳处理呢?****想理解这个问题就得从两者关系入手。

3.1 方便操作

  我们用小故事来比喻这两者之间的关系: 小王是精通程序操作的程序员,想找对象但由于内向不敢搭讪认识,于是找媒婆想跟之前的同学小黑说媒,但媒婆去找小黑,小黑拒绝了这个亲事,王婆将结果告诉小王,这件事就结束了。

这个故事可以类比Linux内容:

故事身份 类比系统 人物做法 类比系统
小王 用户 喜欢小黑 输入命令
王婆 外壳 向小黑说媒 / 告诉小王结果 外壳将命令转交给内核 / 返回结果信息
小黑 操作内核 拒绝亲事 命令执行出错

  那么我们就知道了外壳存在的意义之一:就是帮助用户在不熟悉内核的具体运行规则情况下,实现命令操作------即方便用户操作

3.2 保护内核

  再来一个故事新版本: 小王知道被拒绝后,还是要求媒婆说媒:非小黑不娶,媒婆犟不过就又去小黑家,但远远的看见小黑和她的家人在和小白一起开心吃饭,如同一家人,媒婆不想破坏人家就直接回去了。

这个故事可以类比Linux内容:如用户在输入命令时,如果命令不合理,外壳就会拦截这个命令,防止对内核造成损害。

  那么我们就知道了外壳存在的意义之二:防止用户执行不合理的命令对环境造成破坏------即保护内核

3.3 实现多线程

  再来一个故事新版本: 小王还是不同意这个结果,仍然找媒婆取小黑家说媒,小王爸给媒婆说:你就去吧装装样子就行了,媒婆为了即干事又不破坏自己的招牌,于是找了一个实习生去干这件事,这样无论成败都不会影响自己,而且还可以处理自己的事情。

这个故事可以类比Linux内容:这个自己+实习生 就是线程的底层思想,这也是外壳的高效所在------即多线程

3.4 shell体现

  shell只是一个统称,在Linux centos中这个命令行解释器叫做bash,在登陆后就会自动打开,并一直循环处理(shell和bash就是媒婆与王婆的区别,还有sh、xsh等)。


四、通用体现

  对⽐windowsGUI,我们操作windows不是直接操作windows内核,⽽是通过图形接口,点击,从⽽完成我们的操作(⽐如进⼊D盘的操作,我们通常是双击D盘盘符.或者运⾏起来⼀个应⽤程序)。

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

  还有安卓手机,它的底层就是Linux,外壳安卓就是这样封装后的命令行解释器。


总结

  本节的知识就到这里了,今后的学习中我们还会遇到shell,学习它的底层、甚至写出一个自己的外壳,指令篇就到这里了,下一节将会开启权限的讲解。

相关推荐
A小辣椒21 小时前
TShark:Wireshark CLI 功能
linux
A小辣椒1 天前
TShark:基础知识
linux
AlfredZhao1 天前
OCI 明明分配了 200G 系统盘,为什么 df 只看到 30G?
linux·oci
AlfredZhao2 天前
vi 删除指定范围的行,不用再反复按 dd
linux·vi
用户9718356334662 天前
银河麒麟 KY10 申威(SW64) 安装 nginx-1.16.1-2.p01.ky10.sw_64.rpm 详细步骤
linux
猪脚踏浪2 天前
linux 拷贝文件或目录到指定的位置
linux
大树883 天前
金刚石散热越强,管路越先见顶
大数据·运维·服务器·人工智能·ai
摇滚侠3 天前
Linux CentOS7 rpm 安装 MySQL 5.7
linux·运维·mysql
霸道流氓气质3 天前
领域驱动设计(DDD)在 Spring Boot 微服务中的实践指南
运维·spring boot·微服务
bush43 天前
嵌入式linux学习记录十四、术语
linux·嵌入式