【Linux】shell及其运行原理

1.什么是shell

shell : 操作系统内核的外壳

通常来讲,计算机硬件是由运算器、控制器、存储器、输入/输出设备等硬件共同组成的,而让各种硬件设备各司其职且能协同运行的东西就是操作系统。(详细可看该篇博客操作系统在硬件中的作用

Linux严格意义上说是一个操作系统,我们称之为”内核(kernel)“,但我们一般用户,不能直接使用kernel,因为内核直接管理着硬件,系统内核对计算机来讲是太重要了,如果直接去使用内核可能就会修改内核中的某些参数,造成计算机使用的问题,并且直接使用会增加操作和学习计算机操作系统的难度。

所以一般用户通过基于系统调用接口开发的程序或服务来管理计算机(上面连接中的博客有简绍),也就是是通过内核的”外壳“程序,所谓的shell,来与内核沟通。(windows系统也是类似的操作)

  • 这里的shell是一个统称,不同的操作系统内核对应的外壳是不相同的。
    在这里插入图片描述

从技术的角度,shell的最简单的定义为:命令行解释器
采用如下图的命令行来执行程序。
在这里插入图片描述

2.shell的功能

shell的主要功能

  • 将使用者的命令翻译给核心(kernel)处理
  • 同时,将核心的处理结果翻译给使用者
  • 保护操作系统

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

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

在这里插入图片描述
现在包括红帽系统,在内的许多主流Linux系统默认使用的shell(终端)是bash解释器,我使用的云服务器centos使用的就是bash解释器,可在该位置查看。

[root@VM-16-5-centos ~]# ls /usr/bin/bash -al
-rwxr-xr-x 1 root root 964536 Apr  1  2020 /usr/bin/bash   //命令行解释器,shell

主流Linux系统选择Bash解释器作为命令行终端主要有以下4项优势,大家可以在学习和工作中慢慢体会。(通过该篇博客使用也可看出几分Linux常见指令

  1. 通过上下方向键来调取过往执行过的 Linux 命令;
  2. 命令或参数仅需输入前几位就可以用Tab键补全;
  3. 具有强大的批处理脚本;
  4. 具有实用的环境变量功能;

3.shell的感性理解

人物简绍:

  • 我:我是一个不善言辞,但有钱有权的富二代,在我所在的村子,谁都要给我几分面子。
  • 老榶:我爸,村里的首富皆村长,有钱有权。
  • 如花:我的暗恋对象,但是她很讨厌我,她喜欢的是住在她隔壁的二愣子。
  • 二愣子:如花的男朋友,和如花快结婚了,但是没有张罗,谁都不知道。
  • 王婆:我们村著名的媒婆,传言说媒从无败绩。

在这里插入图片描述
故事:
我从小喜欢编程,但是我性格内敛,从来没有谈过恋爱,每次和女生说话都脸红,出门不带个帽子都会害羞,在大学毕业后,靠着自己的努力找到一份很不错的工作。

大学毕业回家后,老榶和我说:”你工作找的也不错,年龄也到了,是不是该找个媳妇了。“,我心里一动,想到了我们村的如花,我两从小就在一个学校上学,每次见到忍不住的喜欢。于是我就和老榶说,老榶听后说:”这个事情咱们要和人家说呀,找个媒婆提个亲,刚好同村的王婆就是干这个的,而且能力出众,从未失手。“于是就将王婆叫来了,如此这般一说,王婆就立马向如花家出发。

到了如花家,对着如花这般如此的讲了一遍,又讲我家都有钱,都有权,工作也好什么的…。如花听着王婆的讲述,想起了我,那个从小沉默寡言,上小学时经常扣完鼻子手往嘴李送,对我没有一点好印象,于是对王婆说我两不合适,自己不喜欢我,王婆又劝了几句,见没用,就打道回府来到了我家,对我说如花觉得你挺好,就是你两不合适,要不你换一个。我一听就蔫了,坐在那一动不动,老榶看我这样,就知道我是什么意思,就让王婆再去依次,并且务必成功。

王婆一听这没办法啊,又去了如花家,到了她家,你看到如花父母和隔壁的二愣子的父母坐在一起,如花和二愣子两个人坐在一起举止亲昵,正在商量两个人的婚事,你看这情况,就知道这个媒是说不下去了,就往自己家走。

到了家王婆开始琢磨这个事情,基于我家在村里的地位她不敢得罪,而如花这边都开始着要结婚了,这注定不好解决,而要是解决不好自己王婆在这十里八乡说媒界的地位要不保了,该怎么办呢?

最后王婆想到了一个不聪明的办法,招聘实习生,让实习生去说媒,一个不行就两个,两个不行就换下一个,换的多了,也就证明这个事情无法解决,是我的问题,我也就会识相,而王婆的名声也保住了,毕竟说媒的是实习生又不是她王婆。

在这里:

我:用户
媒婆:shell
王婆:bash——shell的一种
如花:操作系统内核

  • 实习生就是进程,有多个实习生就是有多个子进程由进程完成用户的指令(了解)

在这里插入图片描述
所以shell的运行原理可以用一句话概括:

shell是操作系统内核的软件外壳,用户向操作系统发出指令,shell接受指令,在传递给操作系统,操作系统处理后,由shell接受在将结果传给用户。

4.为什么不安装图形化界面

Linux系统中有些图形化界面确实好用,极大地降低了运维人员操作出错的概率。

但是,很多图形化界面其实是调用脚本来完成相应的工作,往往只是为了完成某种工作而设计的,缺乏Linux命令原有的灵活性及可控性。

再者,图形化界面相较于Linux命令行解释器会更加消耗系统资源,因此经验丰富的运维人员甚至都不会给Linux系统安装图形化界面,需要开始运维工作时直接通过命令行模式远程连接过去,

这样做更加高效。

猜你喜欢

转载自blog.csdn.net/m0_52094687/article/details/128415261