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