最新公告
  • 欢迎您光临源码库,本站秉承服务宗旨 履行“站长”责任,销售只是起点 服务永无止境!立即加入
  • 【Linux】一个小故事让你秒懂shell外壳程序

    第一章

    【Linux】一个小故事让你秒懂shell外壳程序插图源码资源库

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

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

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

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

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

    第一章总结:

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

    举例:

    我们随便乱输入一行指令

    【Linux】一个小故事让你秒懂shell外壳程序插图源码资源库

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

    第二章

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

    第二章总结:

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

    举例:

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

    【Linux】一个小故事让你秒懂shell外壳程序插图源码资源库

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

    第三章

    【Linux】一个小故事让你秒懂shell外壳程序插图源码资源库

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

    第三章总结:

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

    第四章

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

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

    第四章总结:

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

    例如:

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

    【Linux】一个小故事让你秒懂shell外壳程序插图源码资源库

    故事完结后的整体总结:

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

    原文链接:https://blog.csdn.net/qq_64042727/article/details/126723732

    1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!
    2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
    3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
    4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
    5. 如有链接无法下载、失效或广告,请联系管理员处理!
    6. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需!

    源码资源库 » 【Linux】一个小故事让你秒懂shell外壳程序