一个生动的例子让你理解Linux的Shell外壳

目录

0.观前提醒

1.外壳程序

2.命令行解释器

3.生动形象的例子(无敌爆炸好笑)

4.稍作总结


0.观前提醒

(1)建议可以直接先看 3.生动形象的例子(直接点目录跳转) , 再回来看前面的理论。

(2)  本文结合了生动的例子以及操作系统理论来解释Shell外壳的作用,一定会让你有所收获。

ONE首先第一个问题就是知道Shell外壳究竟是个什么,TA在哪里呢?

1.外壳程序

在狭义上 , 我们称Linux操作系统的内核 为 Linux。

在广义上 , Linux发行版 == Linux内核 + 外壳程序

就比如市面上现在的redhat,centos,Ubuntu等等我们耳熟能详的Linux发行版,

事实上这些Linux发行版都是基于Linux操作系统的内核,

然后对之加装了不同的Shell外壳 ,最终做出不同种类的Linux发行版

我们作为用户,是不能直接去操作Linux内核的,

一来是直接去操作Linxu内核成本是极高的,学习成本,操作成本都不低

二来用户直接操作Linux内核是存在风险性的,所以Linux内核对用户设置了权限,不能直接操作

所以我们有了shell外壳程序来间接帮助我们操作Linux内核。

windows操作系统的Shell外壳是一个窗口图形界面,所以我们可以通过这个窗口图形,接收来自用户的点击、拖拽等操作, 从而使用windows的各个功能。

Linux操作系统的Shell外壳的名字叫bash,所以我们也可以通过bash来传达我们的操作,即用户对bash输入指令,从而使用Linux操作系统的功能。

简单的说 , Shell外壳程序是对Linux内核的一层封装 , 架起了用户和Linux沟通的桥梁

TWO那这层Shell外壳具体在Linux中的表现是什么,Shell外壳是如何沟通用户和Linux的呢?

2.命令行解释器

首先我们看Linux系统中每一行都会有一个输入指令的提示

例如 [zy@VM-20-9-centos ~]$  来提示用户在后面输入指令+选项

这个东西实际上叫做 命令行解释器 。

 命令行解释器 , 其实就是shell外壳程序Linux系统中的具体表现。 

Shell外壳 , 即命令行解释器 , 用户对之输入指令之后 , shell外壳接收解析指令, 然后发送Linux内核处理执行

Linux内核处理之后,将结果反馈shell外壳 , shell外壳再将结果解析返还给用户

所以Shell外壳是这样沟通用户Linux操作系统

3.生动形象的例子(无敌爆炸好笑)

现在你可能对Linux的Shell外壳有了迷迷糊糊的理解,接下来我们通过一个超级生动的例子讲解Shell外壳的作用。

  从前有座山,山里有个村,村里有个老村长,而你是老村长的儿子。同时,你们村还有一个远近闻名的媒婆--王婆,在你们当地有非常不错的招牌,曾撮合了无数对男女。

  你作为村长的儿子,也老大不小了,也到了找对象的时候,你作为一个纯情的小男生,自然心底里自然还想着你们村的如花姑娘。

  但是你还是害羞的小男孩~,是不方便也不敢和如花姑娘直接去沟通的,所以你就只得找王媒婆来代为传递你的信息。

  这天,你找到了王婆,说你想找如花姑娘约会(相亲),王婆说可以给你办这件事,然后她就把你想找如花姑娘约会这件事委婉的传达给了如花姑娘。如花姑娘说不行,她并不想和我谈对象,便给王婆委婉的表达了拒绝与歉意。王婆就很直白的跟我这个小伙子说,如花姑娘压根不喜欢你,你还是放弃她吧。

  所以王婆事实上成为沟通你和如花姑娘的桥梁。

  (这个例子可以类比Shell外壳对 用户 和 操作系统内核 之间沟通的媒介作用)

 

 

 你心想,作为一个纯情的男人,我是不会放弃的!!!所以这天你又找到了王婆,说再帮孩子一把吧,我真的喜欢如花姑娘[大哭]。王婆说好吧,那我再给你传达最后一次,不过不出所料,结局再次上演,如花再次拒绝,王婆又把这个残忍的事实传达给了你。

  这时你又跟王婆说能不能再帮我问一下,王婆此时直接拒绝了你,说不要了再这样了.这样如花姑娘的内心会很厌烦甚至是无奈痛苦的,(王婆要顾及如花姑娘的心情,事实上这也是在保护如花姑娘,防止你去亲自找她,做出极端的事情)。

  所以事实上,王婆拥有拒绝你的权利。

  (这个例子可以类比Shell外壳可以直接拒绝用户的一些非法请求,从而保护操作系统)

  不过故事仍然没有结束,你可是村长的儿子呀,你的一再要求,王婆肯定会考虑到村长的面子,

但是王婆也得考虑到,不能因为你这事把她的招牌给砸了,而且我王婆还得忙着给别的男女说媒呢。

  所以这时王婆会有一个绝妙的对策,招一个实习生给你办这件事,(王婆:让我的实习生给你办这件棘手且有风险的事情吧,我溜了哦)。

  实习生给你办,这样的好处是,一方面王婆可以跟我说这件事可是一直在办着的哦,只不过是我的实习生在给你办这件事,不过这件事可是一直在办着呢。另一方面实习生就是办砸了这件事也没关系,反正只要不是我王婆办的,我这个招牌就不会砸。

  所以对于一些棘手有风险的事情,王婆不会直接去干而是交给实习生。

这个例子可以类比Shell外壳可以自己创建子进程,去执行一些具有风险的请求,从而不影响 危害Shell外壳。

 

4.稍作总结

从上我们了解到,Shell外壳是对Linux内核的封装,连接沟通了用户(需求)与Linux内核(执行),

这降低了用户的操作学习成本。

Shell外壳可以传达用户指令,交给操作系统内核去执行 ,最终把执行结果翻译反馈给用户。

同时Shell外壳也可以直接拒绝用户,从而保护操作系统内核。

Shell外壳也可以通过创建Shell外壳程序的子进程的方式,来执行有风险的指令,从而来保护bash即Shell外壳本身。

  • 6
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值