建个人网站,活字格能开发企业网站吗,宁波网站建设推广,做网站asp用什么软件前言
前一段时间由于身体的缘故和一些琐事#xff0c;好久没有更新Linux的博文了。从本篇博文开始会接着以前的内容一直持续更新#xff01;
本期类容介绍 为什么存在shell外壳#xff1f; 什么是shell外壳#xff1f; shell外壳是如何工作的#xff1f; 一、为什么存在…前言
前一段时间由于身体的缘故和一些琐事好久没有更新Linux的博文了。从本篇博文开始会接着以前的内容一直持续更新
本期类容介绍 为什么存在shell外壳 什么是shell外壳 shell外壳是如何工作的 一、为什么存在shell外壳 Linux广义上说是内核外壳组成的内核就是说操作系统的内核外壳为就是在内核周围的一个可执行程序命令行的等你输入并给你输出的那个。 狭义上讲Linux是一款操作系统只有单纯的内核组成。但是Linux的内核是非常复杂的我们一般的使用者用户是无法直接和内核进行正常的交互的主要的原因有两方面一是内核操作难度很大一般用户容易控制不住二是一般的用户可能在直接访问内核时会有一些非法的或不安全的操作会造成内核的安全问题总之就是一般的用户对内核操作很困难此时是通过内核的外壳程序即所谓的shell来与内核直接交互的 举个栗子
假设你要开车去上班你是不是与车要交互呀你是直接去打开发动机去与车交互在发动机那块让车起来的吗不是吧你开车直接与发动机交互的话是不是很难也很不安全呀你只需要拿着钥匙转一下。让钥匙这个对象帮你去与发动机交互呀这里也是一样的你不需要直接与内核交互你只需要与内核周围的shell外壳进行交互即可
这里也就知道了为什要存在shell外壳了原因是用户不能直接访问操作系统的内核
二、什么是shell外壳 shell是一款内核的外壳程序。 从技术角度最简单的shell的定义是命令行解释器 它的核心就是将用户输入的指令翻译给内核处理同时将内核的处理结果反馈给用户 举个栗子
就很像你一开始谈对象的时候的那个中间人一样你把你的想法告诉中间人中间人告诉你的意中人你的意中人处理后的结果在给中间人中间人在反馈给你
OK看看实际操作 对比win的GUI我们在操作win的时候也不是直接对win的内核直接操作的而是通过点击图标进行的其实点击的图标类似于我们这里的shell外壳只不过win将shell外壳图形化了同理shell对于Linux有相同的作用主要是对我们的指令进行解析然后内核然后将内核的结果解析反馈给用户
三、shell外壳是如何工作的 我们上面刚刚解说过shell外壳本质是一款执行起来的程序进程 他的工作方式主要是 1、低风险的操作自己亲自去执行。 2、困难的、有风险的让shell外壳创建的子进程去尝试 每次你登录xshell的时候系统会给你当前登录的用户创建一个shell外壳程序只不过名字不一样一般是bash!我们登录上去看看命令解释器不只是有shell shell如果是媒婆的话那么bash就是王婆sh就是李婆 低风险的自己去做我可以理解但是有风险的不应该自己去做吗简单的不应该让子进程去做吗是的现实生活中的很多是这样的但是这个不同如果高风险的操作自己亲自去做当前进程挂了咋办是不是直接出问题了所以为了保险起见让子进程去执行高风险的操作这样即使子进程挂科shell还在还可以继续正常工作OK我们可以写一个代码看看
#include stdio.h
#include sys/types.h
#include unistd.hint main()
{printf(我的pid:%d \n, getpid());//获取子进程printf(我的父进程的pid:%d\n,getppid());//获取父进程return 0;
}shell一看这是用户写的是不是有风险呀所以就让子进程去执行了
OKshell的运行原理暂时只能介绍到这里了后面的知识学了会在后面介绍的下面我将所有的内容用一个例子来帮助理解一下
假设你是一个从小就学习很好的学生高考后考上了大学学的计算机你也比较刻苦每天专心在学习等到毕业后你的技术已经超过了学校的同龄人也如愿的找到了一份满意的工作但是过了两年后你爹坐不住了每天催你找对象结婚但是大学时期你每天都在和电脑打交道与电脑交流是非常熟悉的但是与人交流不行了害羞社恐这是你爹看出你的窘迫于是问你儿啊你看上哪家的菇凉了你爹我认识村东头的王婆她可是远近闻名你爹我好嘚也是一个村长我让她帮你问问保准可以成你同意了你爹找来了王婆你说你看上了隔壁的翠花于是王婆得知后就去隔壁家问了但王婆一到翠花家里就发现翠花和张三好上了。。。于是王婆不好意思的回来想着哎呦这可咋办嘛人家是村长不好得罪但是这里强行问的话或有被骂的风险毁坏了我王婆的名声。于是他就让她的徒弟替他去问了结果出事情了但是王婆给村长的就是是徒弟业务不行这次搞砸了下次遇到好的我给你推荐这样下来给了村长家一个交代也自己的名声好着了
你就是用户王婆就是shell\bash\sh等命令行解释器王婆的徒弟就是子进程翠花就是内核
OK本期内容就到这里下期我们再见