在我們日常使用的計算機內部當中,系統(tǒng)內核Kernel才是控制計算機的主要模塊。當然在我們用電腦的時候,是不可能接觸到這個系統(tǒng)內核Kernel的,因此需要一個“中間件”將用戶與系統(tǒng)內核Kernel連接起來,這個“中間件”在Linux系統(tǒng)中就叫做Shell。簡單的說這就是shell,但是到底什么才是shell?有哪些分類?下面有詳細介紹。
1、什么是shell?
Linux系統(tǒng)的shell介于系統(tǒng)內核與用戶之間,相當于系統(tǒng)與用戶間的橋梁,負責解析輸入的命令和輸出的二進制碼。另外,shell也屬于一種程序設計語言,為用戶提供操作機器的交互接口,使用戶輸入的命令能夠傳送到內核執(zhí)行并把處理結果反饋回來。一句話解釋Shell的概念:shell就是在操作系統(tǒng)和應用程序之間的一個命令翻譯工具。
2、shell的分類有哪些?
1)圖形界面shell,桌面就是一個圖形界面shell。
2)命令行shell,如:linux系統(tǒng)下的bash。
3、Shell連接用戶與內核的真相
Shell程序本身的功能是很弱的,我們運行一個命令,Shell去調用內核暴露出來的接口,也就是調用一個個函數(shù),調用函數(shù)即是使用內核。比如我們在命令行執(zhí)行命令cat xxx.log命令來查日志文件內容。然而,這個文件在哪個位置,有多少個數(shù)據(jù)塊等等這些細節(jié),shell都是不知道的,它只能去調用內核提供的read或open函數(shù),告訴內核我需要這樣做,你幫我去做。
4、Shell 是一種腳本語言
有些編程語言可以一邊編譯一邊執(zhí)行,我們稱之為腳本語言(Script)。腳本語言是使用靈活、部署容易、跨平臺性好。Shell 就是一種腳本語言,我們編寫完源碼后不用編譯,直接運行源碼即可。Shell 雖然沒有其他編程語言那么強大,如C++、Python,但也支持基本的編程元素。
綜上所述,什么是shell以及有哪些分類的全部內容,想了解更多關于shell的信息,請繼續(xù)關注中培偉業(yè)。