什麼是Shell? bash是幹啥的? 有什麼關係

什麼是Shell? bash是幹啥的?  有什麼關係


       shell是你(用戶)和Linux(或者更準確的說,是你和Linux內核)之間的接口程序。你在提示符下輸入的每個命令都由shell先解釋然後傳給Linux內核。 


       shell 是一個命令語言解釋器(command-language interpreter)。擁有自己內建的 shell 命令集。此外,shell也能被系統中其他有效的Linux 實用程序和應用程序(utilities and application programs)所調用。


       不論何時你鍵入一個命令,它都被Linux shell所解釋。一些命令,比如打印當前工作目錄命令(pwd),是包含在Linux bash內部的(就象DOS的內部命令)。其他命令,比如拷貝命令(cp)和移動命令(rm),是存在於文件系統中某個目錄下的單獨的程序。


       而對用戶來說,你不知道(或者可能不關心)一個命令是建立在shell內部還是一個單獨的程序。 shell 首先檢查命令是否是內部命令,不是的話再檢查是否是一個應用程序,這裏的應用程序可以是Linux本身的實用程序,比如ls 和 rm,也可以是購買的商業程序,比如 xv,或者是公用軟件(public domain software),就象 ghostview。然後shell試着在搜索路徑($PATH)裏尋找這些應用程序。搜索路徑是一個能找到可執行程序的目錄列表。如果你鍵入的命令不是一個內部命令並且在路徑裏沒有找到這個可執行文件,將會顯示一條錯誤信息。而如果命令被成功的找到的話,shell的內部命令或應用程序將被分解爲系統調用並傳給Linux內核。 


       shell的另一個重要特性是它自身就是一個解釋型的程序設計語言,shell 程序設計語言支持在高級語言裏所能見到的絕大多數程序控制結構,比如循環,函數,變量和數組。shell 編程語言很易學,並且一旦掌握後它將成爲你的得力工具。任何在提示符下能鍵入的命令也能放到一個可執行的shell程序裏,這意味着用shell語言能簡單地重複執行某一任務。


     bash是shell的一種,具有友好的交互界面、更容易操作、更方便使用者,命令補齊功能:通常你在 bash (或任何其他的 shell)下輸入命令時,你不必把命令輸全 shell 就能判斷出你所要輸入的命令。 bash 另一個使命令輸入變得更簡單的方法是在命令中使用通配符。bash 支持三種通配符:

* 匹配任何字符和任何數目的字符

?匹配任何單字符

【...】 匹配任何包含在括號裏的單字符


       bash 也支持命令歷史記錄, bash 把你先前輸入的命令文本保存在一個歷史列表中。當你用你的帳號登錄後歷史列表將根據一個歷史文件被初始化歷史文件的缺省名字是 .bash_history這個文件通常在你的用戶目錄($HOME)中。用戶在命令提示符下,可通過上、下箭頭翻看歷史命令。bash還支持輸入、輸出重定向,管道等簡單方便使用。

   

      好了,李小胖就說這麼多,也是總結外加個人理解,希望對初學者有所幫助!






發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章