shell是你(用戶)和Linux(或者更准確的說,是你和Linux內核)之間的接口程序。你在提示符下輸入的每個命令都由shell先解釋然后傳給Linux內核。
shell 是一個命令語言解釋器(command-language interpreter)。擁有自己內建的 shell 命令集。此外,shell也能被系統中其他有效的Linux 實用程序和應用程序(utilities and application programs)所調用。 不論何時你鍵入一個命令,它都被Linux shell所解釋。 shell 首先檢查命令是否是內部命令,不是的話再檢查是否是一個應用程序,這里的應用程序可以是Linux本身的實用程序,然后shell試着在搜索路徑($PATH)里尋找這些應用程序。搜索路徑是一個能找到可執行程序的目錄列表。如果你鍵入的命令不是一個內部命令並且在路徑里沒有找到這個可執行文件,將會顯示一條錯誤信息。而如果命令被成功的找到的話,shell的內部命令或應用程序將被分解為系統調用並傳給Linux內核。 shell的另一個重要特性是它自身就是一個解釋型的程序設計語言。
BASH是SHELL的一種,是大多數LINUX發行版默認的SHELL,除BASH SHELL外還有C SHELL等其它類型的SHELL。
bash是sh的增強版本,在我們平常實地操作的時候如果sh這個命令不靈了我們應當使用bash。