Linux作業系統:Shell的說明

大家好,我是TT。

這篇我們來學習下linux裡邊的Shell。它的在linux裡面是非常有用的一個功能,這個功能叫做shell指令碼程式設計。

大家不要因為這個程式設計就被嚇到,這個程式設計其實沒有你想象的那麼難。那在shell指令碼程式設計當中其實它們的一些基本元素就是linux命令,把組合在一起就構成一個shell指令碼。

在今天分享shell指令碼篇前還要為大家去補充一些指令碼的必備功能,比如我們去編寫shell指令碼的時候需要一個叫做變數這樣一個概念,去做一些資料的臨時的儲存,那這裡邊去執行命令的時候不一定是順序執行的,我會為大家講一下關於判斷和分支,以及在shell指令碼中怎麼去構建這種迴圈執行的這麼一個程式。

之後我還會為大家去介紹下shell指令碼中非常有意思的東西,就是shell指令碼中的特殊字元。

好,接下來我們進入主題,認識shell,它是什麼東西呢?這個shell指令碼除了我們自己去編寫系統有沒有呢?其實系統當中也有很多的這個shell指令碼,這些指令碼在我們系統啟動的過程中它就已經涉及到大量的指令碼運行了。

這裡我也會為大家介紹下linux啟動的過程,在這一過程中我們涉及到哪些指令碼。那我們說了除了系統指令碼的話,我要想完成一些自己的任務,那我們就需要自己去編寫一個自己的shell指令碼。那自己編寫指令碼的話應該包括哪幾部分?我在這也會為大家去介紹,以及自己編寫的指令碼該去如何進行執行。

最後呢,我還會大家去介紹一下關於內部命令和外部命令的區別。

Linux作業系統:Shell的說明

好。首先我們來看下什麼是shell,我們把它定義為linux命令直譯器。那如果用一句話概括shell這個概念,就是shell會把所有使用者執行的命令翻譯給我們的核心,核心根據我們命令執行的一個結果,再把結果反饋給使用者。

那它具體是一個什麼樣的過程呢?例如我們用來去解釋的ls命令,知道ls命令的朋友就不要再簡單的把它當做ls就只能檢視一個檔案,那ls它的底層一個過程是什麼樣的呢?當你去輸入ls回車的時候,首先由shell接受使用者執行的這條命令,接受完之後那麼它去對命令的選項和引數進行分析,分析之後我們知道ls是檢視檔案的,那第一步它會交給我們的檔案系統,檔案系統在哪一層呢?就是在核心的這個層面。那核心就可以接收到這個命令,那根據檔案系統我們會去把ls要檢視的檔案目錄再翻譯成我們對應的這個硬碟的某一個扇區。

當然SSD硬碟那是另外的一種結構,好,那這邊翻譯到硬體,硬體會把我們查詢到的一個結果再交給核心,核心再返回給shell,那最終再返回給我們的使用者。那這個shell它就是這樣一個基本的功能,那我們會發現什麼呢?那我們只要是把shell編寫好的話,那使用者其實是不用去寫我們的驅動程式的,也不用去開發複雜的C語言。

那我們這邊透過一個簡單的命令就可以控制我們的核心,以及控制我們的作業系統做很多自己想做的事情。那這個其實就是shell直譯器它的一個最主要的一個功勞,使用者不用去了解底層的這些知識。

那在contOS 7中其實shell有很多種,可以透過cat/etc/shells去進行檢視,還有一種我們要重點掌握的這個shell的型別,那這個型別叫做bash,這個bash和其他的這個命令直譯器有什麼關係呢?歡迎在評論區給我留言,beybey