1. 程式人生 > >[17]_關於Ubuntu16.04.3終端下的命令列解析器bash和命令執行過程

[17]_關於Ubuntu16.04.3終端下的命令列解析器bash和命令執行過程

1. 在Ubuntu16.04.3中開啟終端常用的幾種方式:1.同時按下鍵盤:Ctrl + Alt + t 這三個鍵; 2. 在介面空白處右鍵然後:Open Terminal   等等。

2. 說說在終端下的命令列解析器,大概過程是這樣的:

(1)在鍵盤上每敲一個字元都會發送給終端接收程式(叫做shell解析器,本質是bash),終端程式一個一個地接收來自鍵盤的字串並在終端上顯示;

(2)按下回車(就是個字串結束符),表示告訴終端你本次輸入的字串(命令)就是這個;

(3)終端程式根據你輸入的字串去找命令,如果找不到會列印輸出:command not found

3. 如何知道Ubuntu的命令列解析器是bash呢??

(1)ps 檢視當前的程序、ls /bin/sh -l

4. bash去哪裡找到我們並解析我們輸入的命令的??

(1)猜測是這些命令應該有預設的存放路徑,在Linux中預設的路徑就是環境變數(echo $PATH可檢視),環境變數由PATH來決定;

5.  什麼是命令?

(2)命令就是可執行程式,這些程式包括系統預設可執行程式(存放在/sbin目錄下)和使用者安裝的可執行程式(存放在/bin目錄下)

7. 命令的執行過程:

(1)終端(shell)獲取並顯示鍵盤輸入的命令,使用者回車後表示輸入的命令結束;

(2)終端(shell)在預設的路徑下找到命令對應的可執行程式,bash解析並執行命令:(其中字串空格前是命令,空格後是給命令傳遞的引數,命令可以帶參,也可以不帶參執行。比如:pwd預設是不帶引數,表示顯示當前所在的目錄。ls /bin 其中ls是命令,/bin是ls的引數,整個的意思表示顯示/bin目錄下的檔案及資料夾 )

(3)注意:一個命令可以不帶引數,可以帶一個引數、可以帶多個引數;譬如:ls /bin/sh -l  就包含了兩個引數。

--------------------------------------------------------------------後續-------------------------------------------------------------------------------------------