命令在linux中的執行分為4步:
第一步:判斷路徑
判斷使用者是否以絕對路徑或相對路徑的方式輸入命令(如/bin/ls),如果是的話直接執行。
第二步:檢查別名
linux系統檢查使用者輸入的命令是否為「別名命令」,即用乙個自定義的命令名稱來替換原本的命令名稱。可以用alias命令來建立乙個屬於自己的別名,格式為「alias 別名=命令」。如果想取消乙個命令別名,則用unalias格式為「unalias 別名」。
第三步:判斷內外部
bash直譯器會判斷使用者輸入的命令是內部命令還是外部命令。內部命令是直譯器內部的命令,會被直接執行;但是使用者在多數時間輸入的命令都是外部命令,這些命令交給步驟四繼續處理。
可以使用「type 命令名稱」來判斷使用者輸入的命令是內部命令還是外部命令。
第四步:路徑查詢檔案
系統在多個路徑中查詢使用者輸入的命令檔案,而定義這些路徑的變數叫做path,可以簡單的把它理解為「直譯器的小助手」,作用是告訴bash直譯器待執行的命令可能存放的位置,然後bash直譯器就會乖乖地在這些位置中逐個查詢。path是由多個路徑值組成的變數,每個路徑值之間用冒號間隔,對這些路徑的增加和刪除操作將影響到bash直譯器對linux命令的查詢。
注意:不要將當前目錄(.)加入到path中!!
因為,雖然當前目錄是可以加到path中的,但是,這樣做是不安全的。例如,當黑客在比較常用的公共目錄中如/tmp中存放了乙個與ls或cd命令同名的木馬檔案,而使用者又恰巧在公共目錄中執行了這些命令,那就gg了。
所以,作為運維人員,當接手乙個新的linux系統後,首先,應該看一下path變數中有無可疑的目錄。
php在linux中執行外部命令
目錄 一 php中呼叫外部命令介紹 二 關於安全問題 三 關於超時問題 四 關於php執行linux環境中命令出現的問題 一 php中呼叫外部命令介紹 在php中呼叫外部命令,可以用,1 呼叫專門函式 2 反引號 3 popen 函式開啟程序,三種方法來實現 方法一 用php提供的專門函式 四個 p...
linux程式執行步驟
作業系統建立程序,把控制權交給程式的入口 往往是執行庫中的某個入口函式 入口函式對執行庫和程式執行環境進行初始化 包括堆 i o 執行緒 全域性變數構造等等 入口函式初始化後,呼叫 main 函式,正式開始執行程式主體部分。main 函式執行完畢後,返回到入口函式進行清理工作 包括全域性變數析構 堆...
linux中後台執行命令
今天遇到了乙個問題,連線伺服器的時候老是連線中斷,但是執行的語句也就終止了下面看看解決方案 版本 ubuntu 18.04.4 live server amd64.iso ubuntu 程式後台執行幾個方法 1.要執行的語句後面加上 這樣就能讓語句在後台執行 示例 sudo scp r root i...