一个生动的例子让你理解Linux的Shell外壳
目錄
0.觀前提醒
1.外殼程序
2.命令行解釋器
3.生動形象的例子(無敵爆炸好笑)
4.稍作總結(jié)
0.觀前提醒
(1)建議可以直接先看 3.生動形象的例子(直接點目錄跳轉(zhuǎn)) , 再回來看前面的理論。
(2)??本文結(jié)合了生動的例子以及操作系統(tǒng)理論來解釋Shell外殼的作用,一定會讓你有所收獲。
ONE首先第一個問題就是知道Shell外殼究竟是個什么,TA在哪里呢?
1.外殼程序
在狹義上 , 我們稱Linux操作系統(tǒng)的內(nèi)核 為 Linux。
在廣義上 , Linux發(fā)行版 == Linux內(nèi)核 + 外殼程序
就比如市面上現(xiàn)在的redhat,centos,Ubuntu等等我們耳熟能詳?shù)腖inux發(fā)行版,
事實上這些Linux發(fā)行版都是基于Linux操作系統(tǒng)的內(nèi)核,
然后對之加裝了不同的Shell外殼 ,最終做出不同種類的Linux發(fā)行版。
我們作為用戶,是不能直接去操作Linux內(nèi)核的,
一來是直接去操作Linxu內(nèi)核成本是極高的,學習成本,操作成本都不低
二來用戶直接操作Linux內(nèi)核是存在風險性的,所以Linux內(nèi)核對用戶設置了權(quán)限,不能直接操作
所以我們有了shell外殼程序來間接幫助我們操作Linux內(nèi)核。
windows操作系統(tǒng)的Shell外殼是一個窗口圖形界面,所以我們可以通過這個窗口圖形,接收來自用戶的點擊、拖拽等操作, 從而使用windows的各個功能。
Linux操作系統(tǒng)的Shell外殼的名字叫bash,所以我們也可以通過bash來傳達我們的操作,即用戶對bash輸入指令,從而使用Linux操作系統(tǒng)的功能。
簡單的說 , Shell外殼程序是對Linux內(nèi)核的一層封裝 , 架起了用戶和Linux溝通的橋梁。
TWO那這層Shell外殼具體在Linux中的表現(xiàn)是什么,Shell外殼是如何溝通用戶和Linux的呢?
2.命令行解釋器
首先我們看Linux系統(tǒng)中每一行都會有一個輸入指令的提示
例如 [zy@VM-20-9-centos ~]$? 來提示用戶在后面輸入指令+選項
這個東西實際上叫做 命令行解釋器 。
?命令行解釋器 , 其實就是shell外殼程序在Linux系統(tǒng)中的具體表現(xiàn)。?
Shell外殼 , 即命令行解釋器 , 用戶對之輸入指令之后 , shell外殼接收并解析該指令, 然后發(fā)送給Linux內(nèi)核去處理執(zhí)行。
Linux內(nèi)核處理之后,將結(jié)果反饋給shell外殼 , shell外殼再將結(jié)果解析返還給用戶。
所以Shell外殼是這樣溝通了用戶和Linux操作系統(tǒng)。
3.生動形象的例子(無敵爆炸好笑)
現(xiàn)在你可能對Linux的Shell外殼有了迷迷糊糊的理解,接下來我們通過一個超級生動的例子講解Shell外殼的作用。
? 從前有座山,山里有個村,村里有個老村長,而你是老村長的兒子。同時,你們村還有一個遠近聞名的媒婆--王婆,在你們當?shù)赜蟹浅2诲e的招牌,曾撮合了無數(shù)對男女。
? 你作為村長的兒子,也老大不小了,也到了找對象的時候,你作為一個純情的小男生,自然心底里自然還想著你們村的如花姑娘。
? 但是你還是害羞的小男孩~,是不方便也不敢和如花姑娘直接去溝通的,所以你就只得找王媒婆來代為傳遞你的信息。
? 這天,你找到了王婆,說你想找如花姑娘約會(相親),王婆說可以給你辦這件事,然后她就把你想找如花姑娘約會這件事委婉的傳達給了如花姑娘。如花姑娘說不行,她并不想和我談對象,便給王婆委婉的表達了拒絕與歉意。王婆就很直白的跟我這個小伙子說,如花姑娘壓根不喜歡你,你還是放棄她吧。
? 所以王婆事實上成為溝通你和如花姑娘的橋梁。
? (這個例子可以類比Shell外殼對 用戶 和 操作系統(tǒng)內(nèi)核 之間溝通的媒介作用)
?
?
?你心想,作為一個純情的男人,我是不會放棄的!!!所以這天你又找到了王婆,說再幫孩子一把吧,我真的喜歡如花姑娘[大哭]。王婆說好吧,那我再給你傳達最后一次,不過不出所料,結(jié)局再次上演,如花再次拒絕,王婆又把這個殘忍的事實傳達給了你。
? 這時你又跟王婆說能不能再幫我問一下,王婆此時直接拒絕了你,說不要了再這樣了.這樣如花姑娘的內(nèi)心會很厭煩甚至是無奈痛苦的,(王婆要顧及如花姑娘的心情,事實上這也是在保護如花姑娘,防止你去親自找她,做出極端的事情)。
? 所以事實上,王婆擁有拒絕你的權(quán)利。
? (這個例子可以類比Shell外殼可以直接拒絕用戶的一些非法請求,從而保護操作系統(tǒng))
? 不過故事仍然沒有結(jié)束,你可是村長的兒子呀,你的一再要求,王婆肯定會考慮到村長的面子,
但是王婆也得考慮到,不能因為你這事把她的招牌給砸了,而且我王婆還得忙著給別的男女說媒呢。
? 所以這時王婆會有一個絕妙的對策,招一個實習生給你辦這件事,(王婆:讓我的實習生給你辦這件棘手且有風險的事情吧,我溜了哦)。
? 實習生給你辦,這樣的好處是,一方面王婆可以跟我說這件事可是一直在辦著的哦,只不過是我的實習生在給你辦這件事,不過這件事可是一直在辦著呢。另一方面實習生就是辦砸了這件事也沒關系,反正只要不是我王婆辦的,我這個招牌就不會砸。
? 所以對于一些棘手有風險的事情,王婆不會直接去干而是交給實習生。
這個例子可以類比Shell外殼可以自己創(chuàng)建子進程,去執(zhí)行一些具有風險的請求,從而不影響 危害Shell外殼。
?
4.稍作總結(jié)
從上我們了解到,Shell外殼是對Linux內(nèi)核的封裝,連接溝通了用戶(需求)與Linux內(nèi)核(執(zhí)行),
這降低了用戶的操作學習成本。
Shell外殼可以傳達用戶指令,交給操作系統(tǒng)內(nèi)核去執(zhí)行 ,最終把執(zhí)行結(jié)果翻譯反饋給用戶。
同時Shell外殼也可以直接拒絕用戶,從而保護操作系統(tǒng)內(nèi)核。
Shell外殼也可以通過創(chuàng)建Shell外殼程序的子進程的方式,來執(zhí)行有風險的指令,從而來保護bash即Shell外殼本身。
總結(jié)
以上是生活随笔為你收集整理的一个生动的例子让你理解Linux的Shell外壳的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 纪念下我的第一款游戏——《剑盾勇者》
- 下一篇: 修改一下DELPHI ,cxImage控