开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第31天,点击查看活动详情
✨欢迎关注🖱点赞🎀收藏⭐留言✒
🔮本文由京与旧铺原创,csdn首发!
😘系列专栏:linux学习
💻首发时间:🎞2022年12月25日🎠
🀄如果觉得博主的文章还不错的话,请三连支持一下博主哦
🎧作者是一个新人,在很多方面还做的不好,欢迎大佬指正,一起学习哦,冲冲冲
广义上说,Linux发行版相当于Linux内核+外壳程序。
典型的外壳程序就是shell,bash,在Windows环境下,Windows系统的图形界面就相当于是一种外壳程序,它负责将用户的操作传达给操作系统内核去执行。
狭义上说,Linux发行版就是Linux内核。
那用户是如何在Linux平台执行它想要执行的指令呢?其实是依赖与shell实现,下面来介绍shell命令运行原理以及作用,上面所说bash可以理解为shell的一种。
shell其实就是一种外壳程序,它能够将用户的请求交给内核进行处理并将执行结果交给用户。下面通过一则小故事来说明shell的基本执行原理。
在很久很久以前的一个小村庄中,某天在外求学的小菜同学回来了,小菜同学的父亲是这个村庄的村长,小菜同学经过在外刻苦求学,找到了一个很好的工作,但是呢年纪也不小了,于是它爸爸催小菜赶紧找一个女朋友,于是小菜同学想起了它的发小小花同学。
小菜同学:爸,我回来了!
小菜它爸:好小子,你终于可回来了,我可想死你啦,臭小子!
小菜同学:我也想死你了!
小菜它爸:在外面有没有交到一个女朋友啊?
小菜同学:没有,爸,你也知道,我一点也不擅长与女孩子打交道。
小菜他爸:小子,你都这么大个人了,该去找一个女朋友了,我不管,你得带你的女朋友见我,赶紧找去。
小菜同学:爸,你这不是为难我嘛!
小菜同学啊,它作为一名程序员,从来不会主动去和女生去打交道,从出生开始,小菜同学一碰到女生就害羞的不得了,它爸看到这个情况,于是帮助小菜同学找了一个媒婆王阿姨,让她去帮助小菜牵桥搭线。
小菜他爸:小菜啊,这样吧,我给你介绍一个人,邻居王阿姨,帮帮你?它在我们这里可出名了,据说牵一对成一对。
小菜同学:(其实我还挺喜欢我的发小小花的)好啊好啊,谢谢爸!
小菜同学对他的发小非常感兴趣,并且在这个时候,小菜同学有非常强大的信念,非小花不娶,王阿姨也看在村长的面子上,答应帮助小菜去找女朋友。
小菜同学:王阿姨,我特别喜欢住在我家对面的那个小花,你能帮我搭个桥牵个线吗?
王阿姨:没问题啊,在这一带,就没我做失败的媒。
小菜同学:那就拜托王阿姨了!
于是王阿姨就联系了小花,并告诉隔壁小菜对小花有意思,但小花告诉媒婆,不喜欢小菜,他长得不好看。
王阿姨:小花啊,村长家的小儿子小菜对你很有意思诶,想和你处一处,你看行不行?
小花:王阿姨,这恐怕不行,那小菜我认识,我和他还是发小呢,但是他长得太丑了并且小时候时成绩太菜了,我觉得我和小菜不合适。
王阿姨:原来是这样啊,那我帮你转告,打扰你了哈!
小花:没有没有,阿姨慢走哈!
于是王阿姨告诉小菜,说小花不喜欢你,要不换一个重新找一个吧,但小菜这犟脾气,打死也不换。
王阿姨:小菜啊!王阿姨已经去小花家问过了。
小菜同学:王阿姨,情况怎么样,她是不是答应了?
王阿姨:这小花说啊,说你是她发小,觉得你太丑了而且太菜了,拒绝你了,要不你还是换一个吧?
小菜同学:不行不行,我就只喜欢小花,你再帮我问一问嘛,毕竟我和她是发小还是有机会的。
王阿姨:唉!你咋就不变通呢!行我再帮你问问。
小菜同学:谢谢王阿姨。
这里的小菜其实就相当于用户,王阿姨相当于shell,小花就相当于Linux内核,上面的情景就是用户有一个指令需要去执行,然后shell会去将指令告诉Linux内核并且让内核执行该指令,但是执行该指令的时候它出差了,于是给了一个错误信息给shell,shell就告诉用户该指令是错误的无法执行。所以shell具有传递指令,让Linux内核执行和告知结果的作用。
由于小菜同学的软磨硬泡,让王阿姨再去问一问,于是王阿姨又去小花家里问一问,这次小花告诉王阿姨,她已经结婚了,不要再来问了。
王阿姨:我看小菜真的好像很喜欢你啊,并且你们是发小,要不再考虑考虑? 小花:王阿姨啊,其实吧,我已经有男朋友了,你还是告诉小菜不要再找我了。 王阿姨:是这样啊!
于是王阿姨告诉小菜,小花已经有男朋友了,还是换一个吧,但是小菜真的太喜欢小花了,还是要求王阿姨继续问一问,但是王阿姨知道,这是肯定不可能的事情,于是就直接拒绝了小菜。
王阿姨:小菜啊,阿姨已经问过小花了,她说她已经有男朋友了,你还是换个吧! 小菜同学:阿姨,不要啊,我真的太喜欢小花了,再帮帮我嘛! 王阿姨:哎呀,她都有男朋友了,怎么还有可能嘛! 小菜同学:那我就一直等,王阿姨你就再继续帮我问问嘛! 王阿姨:(可不能让这小子把我招牌砸了)小菜,这样把,我把我徒弟小刘介绍给你,她年纪和小花差不多,也许她更容易说服小花。 小菜同学:好啊好啊,谢谢王阿姨。
王阿姨的招牌就是没有牵不成的线,王阿姨看见自己招牌快要被砸了,于是想到了一个法子,找自己的徒弟小刘去帮助小菜,这样就算没有成功也不是自己的锅。
在上面情节中,王阿姨拒绝了小菜,这个也是shell的一个运行机制,当shell发现一个指令有问题的时候就不会再让指令到Linux内核那里去执行,而是直接告诉用户指令是错误的,这就体现了shell具有保护内核的作用。同时,当shell遇到具有风险的指令的时候(就是小菜在小花有男朋友情况下还有追求它的指令),shell会创建子线程(相当于王阿姨的徒弟小刘)去代替它的工作,让Linux内核去执行。其实shell本质上也是一个进程。
总结:shell可以传递指令和告知用户指令执行结果,还能保护Linux内核。