一个生动的例子让你理解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外殼本身。
總結
以上是生活随笔為你收集整理的一个生动的例子让你理解Linux的Shell外壳的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 纪念下我的第一款游戏——《剑盾勇者》
- 下一篇: Linux ssh图形化