【Linux】一个小故事让你秒懂shell外壳程序

这篇具有很好参考价值的文章主要介绍了【Linux】一个小故事让你秒懂shell外壳程序。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

 文章来源地址https://www.toymoban.com/news/detail-663717.html

目录

🌈前言

🌞shell外壳程序

🐣用户是直接访问操作系统吗?

🐣什么是Shell外壳程序

🐣一个小故事加深你对Shell外壳程序的理解

🐣如何查看自己的外壳程序

🌄总结

 


🌈前言

今天我将为大家详细讲解shell外壳程序,并且通过一个小故事来帮助大家理解和加深印象,故事非常有趣,建议收藏,没事的时候可以看看放松一下,在放松的同时还可以加深对知识的理解。那么我们废话不多说,开始我们今天的内容。


 

🌞shell外壳程序

🐣用户是直接访问操作系统吗?

众所周知,我们在Windows下使用图形化界面进行操作,在Linux下使用各种指令来进行操作从而达到自己的目的,但用户这是在直接访问操作系统吗?

答案是:不是,具体原因我们马上就说,我们先来看看计算机的体系结构。

计算机的体系结构:

linux 壳,Linux系统学习,学习,linux,服务器

操作系统:在这里操作系统会借助驱动程序来进行对硬件的操作,这里的硬件可以是我们连接的键盘鼠标等,大家在使用这些硬件之前,通常会出现驱动程序安装成功的文字,这就是操作系统在通过驱动程序来对硬件进行操作。

 

操作系统的功能其实很复杂:操作系统在对硬件进行操作的时候,需要知道应该调用哪种驱动程序来对此硬件进行控制,并且需要知道这个驱动程序在哪,如何才能找到,怎样才能连接上硬件?所以面临以上诸多问题,如果让人直接访问操作系统的话,是很不合适的。

 

总结不直接访问操作系统的原因:

  • 不是所有人都擅长直接访问操作系统,用户需要足够熟悉操作系统才有可能正确的访问操作系统,但绝大多数人是不熟悉操作系统的。
  • 直接访问操作系统的操作成本过高,需要学习很多知识。
  • 人总是会犯错的,容易带来一些不安全的因素,如果操作失误可能会导致计算机直接崩溃。

银行的故事:

上面所说就好比我们去银行存一笔巨款的时候,我们会先到前台去,并且告诉工作人员说我们要存一笔巨款,这时工作人员会给你几个表,你签上自己名字就可以了,剩下的工作都由工作人员来做。银行是不可能让你自己到金库里面把钱放进去,然后在电脑上自行更改自己存款的数据,万一你是个小偷怎么办,那不直接把金库里面的钱卷走跑路吗?由或者说你在更改自己存款数据的时候一不小心多加了几个0,那这不轻松实现一个小目标吗?再或者说你是一个不识字的老奶奶,银行让你去用电脑自行更改数据,这不是在开玩笑吗,我字都不认识几个,难道会用电脑,太高看我了吧你!正是因为有这些潜在的问题,所以银行安排了很多工作人员,来服务我们这些上帝。(这里的我就相当于用户,这里的银行就相当于操作系统,这里的工作人员就相当于我们等会要讲的shell外壳程序)

 

🐣什么是Shell外壳程序

原理:Linux严格意义上说的是一个操作系统,我们称之为“核心(kernel)”,但我们一般用户,不能直接使用kernel。 而是通过kernel的“外壳”程序,也就是所谓的shell,来与kernel沟通。如何理解?

从技术角度,Shell的最简单定义:命令行解释器(command Interpreter)主要包含:

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

Windows与Linux对比:

  • 对比windows GUI,我们操作 windows 不是直接操作 windows内核,而是通过图形接口,点击,从而完成我们的操作(比如进入D盘的操作,我们通常是双击D盘盘符。或者双击运行起来一个应用程序)
  • shell 对于 Linux,有相同的作用,主要是对我们的指令进行解析,解析指令给Linux内核。反馈结果在通过内核运行出结果,通过shell解析给用户。(比如敲击pwd命令,则会显示出你目前所在的工作目录的绝对路径名称)

 

🐣一个小故事加深你对Shell外壳程序的理解

第一章

linux 壳,Linux系统学习,学习,linux,服务器

        在一个遥远的地方有个小村庄,里面住着一群和谐友爱的村民。我们故事的主角张三就曾经住在这里,而他的老爹就是这里的村长。张三高中就离开村子到城里面读书去了,现如今10年已经过去,张三也完成了他的梦想成为了一名大厂的程序员。

        今天,张三和往常一样下班回家后就打开csdn并听着舒缓的音乐开始写博客,正当张三写到一半时,突然!音乐里响起常回家看看这首歌,顿时张三陷入了沉思,我已经有10年没有回家了,父母一定很想我吧,正好还有半个月就过年了,不如回家看看父母。于是张三毅然决然的订了下个星期回家的火车票。

        一个星期后,张三来到火车站,踏上了回家的旅程。3天过后,张三踏过千山和万水,终于回到了那个熟悉而又陌生的村庄。10年过去,村子里已经物是人非了,但是张三还是记得自己家住在哪里,于是张三来到自家门口悄悄的打开门,他准备给自己父母一个surprise,结果张三刚打开门就看见正在洗菜的母亲,母亲尖叫了一声,有小偷,快点抓小偷啊,母亲正准备用洗菜水泼张三时,幸好张三他爸眼疾手快拦住了母亲,他说这是我们儿子回来了啊,不是什么小偷,这时母亲才仔细一看,还真是自己儿子。于是母亲赶紧做了几个儿子爱吃的菜,就这样一家人开开心心的吃着晚饭。

        晚饭过后,一家人坐在客厅看电视,这时父亲问儿子,小三啊怎么就你一个人回来啊,怎么不把女朋友一起带回家呢?这时张三就尴尬的说,我没有女朋友。后面老爸又接连跟张三聊了很多才发现,我的儿子居然是个宅男,让张三对电脑操作,他可以对电脑各种拿捏,但是却不擅长跟女孩打交道。张三跟女同学一起出去玩,女孩说我饿了,张三说我又没饿;女孩说我冷,张三说我都给你说了外面冷你还不穿外套,哎不听老人言,吃亏在眼前,幸好我穿了外套的哈哈哈;女孩说我肚子疼,张三说那你打车回家吧,我自己去玩。就这样张三10年里面没有交过一个女朋友,老爸听完直叹气,我的儿子真是千年难遇的 “奇才” 啊。但是一直这样下去也不是办法,儿子也不小了,得想个办法给他找个媳妇。

        到了第二天,父亲联系了村里面最好的媒婆——王婆,让王婆给张三说说媒。于是王婆就到了张三家,她问张三,你找对象有什么要求吗?张三回答说,我 “没有” 什么要求,我觉得我们村的翠花就不错(翠花和张三从小学到初中都是同学并且还是同桌,张三觉得她特别好,是从小玩到大青梅竹马,但是高中张三就到城里读书了,从此分道扬镳,但是张三心里面依然惦记着她,但是随着翠花和张三的成长,让他们变得不擅长交流,尤其是张三的成长)。王婆跟张三沟通完后就说,放心吧小伙子,婆这就给你说媒去,你就在家等婆消息吧。于是王婆来到翠花家,她对翠花说,小姑凉啊隔壁有个叫张三的小伙子人挺不错的,跟你是从小玩到大的青梅竹马,有没有兴趣跟他交往一下呀。翠花听了满脸问号,张什么?什么三?我怎么不知道有这么一个青梅竹马,于是她就跟王婆说,我不认识张三是谁呀,要不还是算了吧。于是王婆又带着满脸的问号回到了张三的家里,她对张三说,你也不小年纪了,怎么能骗婆呢,明明你跟翠花都不认识,又何来的青梅竹马?张三听完王婆的话才突然想起,自己与翠花小时候都是以小名称呼的,小时候翠花并不知道我叫张三,以前他叫翠花为小花,翠花称自己为三哥。

 

第一章总结:

故事中我们知道,张三是一个不擅长与女孩打交道的宅男程序员,所以张三就必须找一个中间人来给他传递消息(也就是王婆),张三就把要求说给王婆,王婆就将张三的需求传给翠花,翠花在自己的大脑中做搜索,发现这个人在自己的记忆中并没有印象,然后把结果告诉王婆说这个人我不认识,你不要再给我说媒了,直接拒绝了王婆。王婆返回后再将结果交给张三。故事里面的翠花就相当于操作系统,张三就相当于用户,然而用户不善于直接与操作系统打交道,于是在用户和操作系统之间就有了Shell外壳程序,也就是故事中的王婆。而Shell外壳程序的核心工作就是将用户的需求交给操作系统,操作系统执行完毕后把执行结果(无论正确与否、成功或失败)都传递给Shell外壳程序,然后Shell外壳程序将最后结果传递给用户。

 

举例:

我们随便乱输入一行指令

linux 壳,Linux系统学习,学习,linux,服务器

 这时操作系统就拒绝了我们的命令,外壳程序就在屏幕上打印 command not found 告诉用户说,这行命令没有被操作系统发现。也就相当于第一章故事里面讲的翠花不认识张三一样,然后王婆将最后结果告诉张三。

 

第二章

        王婆从张三那里知道,他与翠花小时候都是以小名称呼的后,于是又来到了翠花家里。王婆这时跟翠花说,其实张三就是你以前一口一个的三哥啊。翠花这时想起来了,原来他就是三哥啊,三哥这个人很好,我以前都是把三哥当哥哥看待,但是并没有和三哥谈恋爱的想法,于是毅然决然的给张三发了张好人卡。这时王婆又返回,如实的告诉了张三,张三听到翠花拒绝他的消息后,如遭雷击,眼泪止不住的往下掉。

 

第二章总结:

王婆把张三是三哥的身份告诉翠花后,翠花这时认识三哥,但是却不喜欢他,于是拒绝了三哥,然后王婆把最后结果告诉张三。这就好比生活中一个人认识你,难道他就一定会喜欢你吗?Linux中也是这样,虽然有时候一条命令存在,但是如果你的权限不够,还是会被操作系统拒绝。(后面我们会单独将权限的)

 

举例:

我们创建一个test.c文件,然后把这个文件所有权限去掉,我们再用ehco命令向test.c文件里面写数据试试。

linux 壳,Linux系统学习,学习,linux,服务器

 这时我们发现我们的命令被操作系统拒绝了,由外壳程序返回了Permission denied,难道echo命令不存在吗,echo当然是存在的,原因是权限不够,所以被拒绝了。就好比翠花认识三哥,并且是青梅竹马,但是翠花就是不喜欢张三,觉得不符合自己要求,所以还是可以拒绝张三。

 

第三章

linux 壳,Linux系统学习,学习,linux,服务器

        张三越哭越伤心,但是张三却不死心,一把鼻涕一把泪的问王婆,可不可以再帮我给翠花说一次,王婆看见张三这个样子有点不忍心拒绝他。于是王婆又来到翠花家门口,发现翠花家的门正好开着,正当王婆要进入翠花家的时候,突然!看见了惊天动人的一幕,翠花正红着脸在跟隔壁的帅哥杨六畅谈人生。这时王婆明白了,原来真相只有一个,翠花已经有男朋友了,怪不得翠花不接受张三,要是老婆子再年轻二十岁也会拒绝张三的,毕竟杨六那么帅是张三能比的吗,王婆在心里默默的对翠花说好样的,老婆子祝你们幸福。于是王婆没有进门,直接返回到张三的家里,这次王婆直接对张三说,小三啊翠花可能是真的不喜欢你,我们还是换一个姑凉吧,婆这里还有很多资源,什么样的姑凉有,何必吊死在一棵树上呢?这时张三就倔强的说,我就是喜欢翠花,非他我不娶。(看不出来就这样一个闷骚的宅男程序员还有一颗倔强的心,可是不是因为张三不够优秀,而是有个老六捷足先登了)这时王婆其实心里面明白,翠花已经有男朋友了,翠花是不可能再接受张三的,于是王婆毅然决然的替翠花做了决定,王婆直接拒绝了张三。

 

第三章总结:

王婆知道翠花有男朋友后,直接帮翠花做了决定,拒绝了张三,因为王婆知道翠花已经不可能接受张三了。如果让张三直接去跟翠花交流就可能出现一些不必要的麻烦,很有可能导致翠花和杨六的幸福破裂。于是王婆这样的做法就相当于间接的保护了翠花也保护了杨六(老六),让他们能够幸福。所以Shell外壳程序的存在,在一定的程度上,可以起到保护操作系统的作用。

 

第四章

        张三这时心里就很不平衡了,翠花拒绝我就算了,现在连王婆都拒绝我了,想当年我在网上可是被人送外号法外狂徒张三的,我一声键来吓得各个网站的人都不敢跟我叫板。于是张三就找到了他的老爹求助,老爹听到后大怒,于是找到了王婆并对她说,我交给你这点小事都办不好,你还称村里第一媒婆,我给你一天的时间考虑,把这件事情给我 “办了”,不然的话,我可是村长,你知道后果的。

        这时王婆回到家里就头大啊,张三这件事注定是办不成的,成功的概率几乎看不到,可是他爸是村长啊,我又不能拒绝他,如果我一连说了十几次媒都没有成功的话,那岂不是砸了我自己在村里面的招牌吗,我不能让时代的悲哀成为我的悲哀啊。于是王婆立马走到村子最繁华的中心位置贴上了招收实习生的公告(王婆婚介所现招实习生,要求本科及,实习阶段月薪过万),于是回村过年的大学生们纷纷来面试,最后王婆招了一个看起来最能干的人来当实习生。王婆招到实习生后就告诉村长说,村长啊我已经跟翠花打交道很多次了,这事我去办的话可能会很难,我帮你找个生面孔去办吧,如果他办不成我就再给你找个生面孔去,只要你愿意,我可以一直找生面孔去给你办(王婆心想,反正你只是让我把这事情办了,至于办没办成就不管我的事了)。于是王婆让实习生去办这件事情,这时这件事办没办成已经不重要了,就算实习生没有办成这件事也是在意料之中的,如果事情闹得很大也没有关系,大不了我把这个实习生开除掉,反正都是实习生的错,与我王婆无关。用这种方法,只要我王婆不倒,我依然是村里的第一媒婆,并且在实习生办这件事情的同时,我还可以去接其他人的媒事。

 

第四章总结:

通过第四章我们可以知道,王婆可以在保护自己的同时,并一直给你办这个件事情,为什么要一直给你办这件事情呢,因为你是村长他儿子啊。这就是为什么你在命令行输入错误的命令,外壳程序会一直帮你做呢,因为你是用户,所以外壳程序就必须帮你做。

例如:

你一直输入命令,外壳程序就会一直帮你处理,就算你输入的是错误的命令。

linux 壳,Linux系统学习,学习,linux,服务器

 

故事完结后的整体总结:

  • 人不直接使用操作系统的原因是人不善于直接使用操作系统。
  • 如果直接访问操作系统会导致成本特别高,并且人是会犯错的,可能带来不安全的因素。
  • Windows下的图形化界面和Linux下的命令行操作都是外壳程序。
  • 外壳程序存在的意义:是用户和操作系统交互的中间软件层(将使用者的命令翻译给核心(kernel)处理。同时,将核心的处理结果翻译给使用者。),并且在一定程度上起到保护操作系统的作用。

 

 

🐣如何查看自己的外壳程序

通过以下命令就可以查看外壳程序了。

echo $BASH

linux 壳,Linux系统学习,学习,linux,服务器

 这里的bash就是我们的外壳程序。

 

我们用ls命令可以查看到bash就是个可执行文件。

linux 壳,Linux系统学习,学习,linux,服务器

 

实际上bash就是一个死循环程序,而你的命令行就是bash打印出来的。

linux 壳,Linux系统学习,学习,linux,服务器

 

额外补充:

我们最开始讲的是shell外壳,这里的bash也是外壳,他们都是外壳,那么他们有什么区别呢?shell外壳可以对应我们故事中的媒婆,bash就对应我们故事中的王婆,他们的关系就跟程序员与程序员张三的关系是一样的。shell就是外壳的统称,bash就是外壳里面的一种。而故事中的实习生就是bash程序里面创建出来的子进程(这个以后我们会说)。   

 


🌄总结

到这里我们的小故事就结束了,相信大家都能够看懂。如果大家有什么解决不了的问题,欢迎大家评论区留言或者私信告诉我。如果感觉对自己有用的话,可以点个赞或关注鼓励一下博主,我会越做越好的,感谢各位的支持。

 

到了这里,关于【Linux】一个小故事让你秒懂shell外壳程序的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【从零开始学习Linux】一文带你了解Shell外壳及用户权限(二)

    🚩 纸上得来终觉浅, 绝知此事要躬行。 🌟主页:June-Frost 🚀专栏:Linux入门 🔭【从零开始学习Linux】系列均属于Linux入门,主要包含Linux操作系统下的指令、操作、权限以及开发工具,使得拥有基本编写代码的能力。 🔥该文章主要了解Shell外壳(理论)及用户权限,该系列

    2024年02月05日
    浏览(51)
  • 【从零开始学习Linux】一文带你了解Shell外壳及用户权限(一)

    🚩 纸上得来终觉浅, 绝知此事要躬行。 🌟主页:June-Frost 🚀专栏:Linux入门 🔭【从零开始学习Linux】系列均属于Linux入门,主要包含Linux操作系统下的指令、操作、权限以及开发工具,使得拥有基本编写代码的能力。 🔥该文章主要了解Shell外壳(理论)及用户权限,其中用

    2024年02月06日
    浏览(74)
  • Linux中的shell外壳与权限(包含目录文件的权限,粘滞位的来龙去脉)

    Linux严格意义上说的是一个操作系统,我们称之为\\\"核心(kernel)\\\", 但我们一般用户,不能直接使用kernel。 而是通过kernel的“外壳”程序,也就是所谓的shell,来与kernel沟通。 操作系统本身是需要易用程度和安全性的 而对于我们使用电脑的普通用户来说,我们是不能直接访问

    2024年02月08日
    浏览(51)
  • 【Linux系统】结合有趣的小故事让你学懂生产者消费者模型

    有一个小朋友叫小C,他住的地方没有超市,只有几家供货商,因为每家供货商类型单一,买东西还要跑来跑去的,而且供货商晚上还不开门,买东西特别不方便,不仅小C觉得麻烦,其他人也觉得麻烦。小C想:为什么不能把这几家供货商的东西先放在一个地方呢,再由几个人

    2024年02月17日
    浏览(38)
  • ChatGpt接入Word文档,让你秒变职场达人!

    今天跟大家分享下我们如何使用VBA代码,将ChatGpt接入Word文档,操作非常的简单,但是开始之前我们需要做2项准备 1.     获取ChatGpt的API 2.     魔法上网 准备好这2件事后,我们就可以着手制作了: 一,设置代码   二.插入模块 复制代码后,我们在Word文档中点击【开发工

    2024年02月05日
    浏览(59)
  • 【Linux】进程程序替换 && 做一个简易的shell

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 目录 文章目录 前言 进程程序替换 替换原理 先看代码和现象 替换函数 第一个execl(): 第二个execv(): 第三个execvp(): 第四个execvpe(): 环境变量 第五个execlp(): 第六个execle(): 函数解释 命名理解 在Make

    2024年04月11日
    浏览(44)
  • AI提问不再难:“RBGR魔法公式”让你秒变提示词高手

    AI 时代,正确提问 提出好问题的能力将变得非常重要 ! 美国《大西洋》杂志甚至将其称为:本世纪最重要的职业技能。 为什么重要? 我们先来看一个简单的实际案例,之前星球里有老铁问,翻墙过程中用到的 “机场节点” 是啥意思? 不会提问的小白,可能一上来不经思

    2024年02月03日
    浏览(40)
  • 『Linux从入门到精通』第 ⑱ 期 - 学会了程序替换,我决定手写一个简易版shell玩一玩...

    🌸作者简介: 花想云 ,在读本科生一枚,C/C++领域新星创作者,新星计划导师,阿里云专家博主,CSDN内容合伙人…致力于 C/C++、Linux 学习。 🌸 专栏简介:本文收录于 Linux从入门到精通 ,本专栏主要内容为本专栏主要内容为Linux的系统性学习,专为小白打造的文章专栏。

    2024年02月14日
    浏览(45)
  • 强烈推荐 十多款2023年必备国内外王炸级AI工具 (免费 精品 好用) 让你秒变神一样的装逼佬、感受10倍生产力

    🚀 个人主页 极客小俊 ✍🏻 作者简介:web开发者、设计师、技术分享博主 🐋 希望大家多多支持一下, 我们一起进步!😄 🏅 如果文章对你有帮助的话,欢迎评论 💬点赞👍🏻 收藏 📂加关注 前言 ❤️ 现在 AI人工智能 一直是一个热门话题,尤其是最近各种充斥着 AI 领域

    2024年02月06日
    浏览(111)
  • 短视频dy(某音)高版本最新最全4种抓包方案,第1种让你秒破QUIC协议,破解抓包难题,看我这一篇就够了!

    一般大多数网站、APP最常用的是http、https协议,而某两款最火的短视频dy(某音)、ks(某手)最新版使用的是quic协议(见附录1),导致fiddler和charles无法直接抓到包(某音app 13.5版本以下可以直接抓到包)。 网上有说用fiddler + xposed + justTrustMe能绕过某音的sslpinning,呵呵,别

    2024年02月01日
    浏览(47)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包