重要的环境变量,重要环境变量在Linux系統中,


 變量是計算機系統用於保存可變值的數據類型。在Linux系統中,變量名稱一般都是大寫的,這是一種約定俗成的規範。我們可以直接通過變量名稱來提取到對應的變量值。Linux系統中的環境變量是用來定義系統運行環境的一些參數,比如每個用戶不同的家目錄、郵件存放位置等。

 細心的讀者應該發現了,本節和上一節的標題名都分別加了形容詞—重要的、常見的。原因其實不言而喻—要想讓Linux系統能夠正常運行並且為用戶提供服務,需要數百個環境變量來協同工作,我們沒有必要逐一查看、學習每一個變量,而是應該在有限的篇幅中精講最重要的內容。

 為了通過環境變量幫助Linux系統構建起能夠為用戶提供服務的工作運行環境,需要數百個變量協同工作才能完成。您當然沒有必要去把每一個變量都看一遍,而應該在最寶貴的書籍中為讀者精講最重要的內容。為了更好地幫助大家理解變量的作用,劉遄老師給大家舉個例子。前文中曾經講到,在Linux系統中一切都是文件,Linux命令也不例外。那麽,在用戶執行了一條命令之後,Linux系統中到底發生了什麽事情呢?簡單來說,命令在Linux中的執行分為4個步驟。

 第1步:判斷用戶是否以絕對路徑或相對路徑的方式輸入命令(如/bin/ls),如果是的話則直接執行。

 第2步:Linux系統檢查用戶輸入的命令是否為“別名命令”,即用一個自定義的命令名稱來替換原本的命令名稱。可以用alias命令來創建一個屬於自己的命令別名,格式為“alias 別名=命令”。若要取消一個命令別名,則是用unalias命令,格式為“unalias 別名”。我們之前在使用rm命令刪除文件時,Linux系統都會要求我們再確認是否執行刪除操作,其實這就是Linux系統為了防止用戶誤刪除文件而特意設置的rm別名命令

 第3步:Bash解釋器判斷用戶輸入的是內部命令還是外部命令。內部命令是解釋器內部的指令,會被直接執行;而用戶在絕大部分時間輸入的是外部命令,這些命令交由步驟4繼續處理。可以使用“type命令名稱”來判斷用戶輸入的命令是內部命令還是外部命令。

 第4步:系統在多個路徑中查找用戶輸入的命令文件,而定義這些路徑的變量叫作PATH,可以簡單地把它理解成是“解釋器的小助手”,作用是告訴Bash解釋器待執行的命令可能存放的位置,然後Bash解釋器就會乖乖地在這些位置中逐個查找。PATH是由多個路徑值組成的變量,每個路徑值之間用冒號間隔,對這些路徑的增加和刪除操作將影響到Bash解釋器對Linux命令的查找。

 這裏有比較經典的問題:“為什麽不能將當前目錄(.)添加到PATH中呢? ” 原因是,盡管可以將當前目錄(.)添加到PATH變量中,從而在某些情況下可以讓用戶免去輸入命令所在路徑的麻煩。但是,如果黑客在比較常用的公共目錄/tmp中存放了一個與ls或cd命令同名的木馬文件,而用戶又恰巧在公共目錄中執行了這些命令,那麽就極有可能中招了。

相关内容