我們平時所說的 Shell 可以理解為 Linux 系統提供給使用者的使用介面。Shell 為使用者提供了輸入命令和引數並可得到命令執行結果的環境。當一個使用者登入 Linux 之後,系統初始化程式 init 就根據 /etc/passwd 檔案中的設定,為每個使用者執行一個被稱為 Shell(外殼)的程式。
確切地說,
Shell 是一個命令列直譯器,它為使用者提供了一個向 Linux 核心傳送請求以便執行程式的介面系統級程式,使用者可以用 Shell 來啟動、掛起、停止甚至編寫一些程式。
Shell 處在核心與外層應用程式之間,起著協呼叫戶與系統的一致性、在使用者與系統之間進行互動的作用。圖 1 是 Linux 系統層次結構圖,Shell 接收使用者輸入的命令,並把使用者的命令從類似 abed 的 ASCII 碼解釋為類似 0101 的機器語言,然後把命令提交到系統核心處理;當核心處理完畢之後,把處理結果再通過 Shell 返回給使用者。
圖 1 Linux系統層次結構圖