
Linux 操作系統廣泛用于服務器,以承載復雜的應用程序,這些應用程序具有非常具體的系統設置。當您啟動一個新的 Linux shell 會話時,會讀取某個系統配置并相應地設置您的計算機。這些配置和設置由環境變量控制。
我們將了解如何在 Linux 系統中列出和設置環境變量。
目錄
(資料圖片)
?主要分享低代碼、微服務、容器化、SAAS?、系統架構方面的的?內容??,希望?大家?點贊?,評論,關注?。
Linux 操作系統支持兩種類型的變量——環境變量和 shell 變量。這些變量會影響您的應用程序和程序的工作方式。
環境變量是影響整個系統的系統范圍的變量。它們被所有 shell 和衍生的子進程使用,并且在命令行和 GUI 上都可用。Linux 環境變量是為程序和進程提供必要信息的動態系統值。這些變量控制默認 Web 瀏覽器、默認文件編輯器或默認文本編輯器、可執行文件、鍵盤布局設置、目錄路徑和系統區域設置等內容。基本上,這些是具有分配給它們的值的名稱。例如,我們使用 JAVA_HOME 變量來設置安裝 JDK 或 JRE 的目錄位置。
Shell 變量是特定 shell 實例的本機變量,僅影響 shell 函數。每個 Linux 操作系統 shell,例如 Bash 和 Korn,都有自己的內部 shell 變量。這有助于跟蹤當前會話中的數據——主要用于交互式 shell 會話或將變量保持在本地的腳本。Bash 特定變量通常以 BASH_ 為前綴,例如 BASH_VERSION。
環境變量和 shell 變量具有相同的格式:
VAR_NAME=value
在使用 shell 和環境變量時,您必須牢記以下變量要求:
按照慣例,變量名總是大寫的,例如 PATH。區分大小寫 - 可以使用小寫字母。= 符號前后不應有空格。始終用冒號 (:) 分隔多個值,例如 value1:value2:value3。下表列出了一些最常見的環境變量。
變量的名稱 | 描述 |
PATH | Linux 在執行命令時搜索的以冒號分隔的目錄列表。 |
USER | 當前登錄用戶的用戶名。 |
HOME | 當前用戶的主目錄。 |
UID | 當前用戶的唯一標識符。 |
EDITOR | 用于編輯文件的默認編輯器。 |
SHELL | 當前用戶的 shell 的名稱。 |
TERM | 當前終端仿真。 |
PWD | 當前工作目錄。 |
TEMP | 臨時目錄的路徑。 |
其中一些變量的值在每臺 Linux 計算機上可能不同。
Linux 有幾個變量,了解它們的值非常重要,因為它們會影響系統的行為。有幾個命令可用于列出 Linux 中的環境變量。
要打印所有環境變量的列表,請鍵入:
printenv
您還可以使用 env 命令列出所有 Linux 變量:
env
變量列表可能很長,因此難以閱讀。您可以將 more 或 less 命令與 printenv 命令一起使用,一次一屏地列出環境變量:
printenv | more
上述所有命令一次列出多個變量。要查找有關指定變量的信息,請使用以下命令:
printenv HOME
此命令打印用戶的主目錄。
您也可以使用 echo 命令打印環境變量值。以下示例打印 PATH 環境變量的值:
echo $PATH
PATH 變量有多個值,它們用冒號分隔。
Linux 提供了兩種設置環境變量的方法。可以先設置一個shell變量,然后將shell變量導出為環境變量,第二種方式是直接導出環境變量。
要為當前 shell 會話創建新的環境變量并設置它們的值,請使用以下命令:
MYVAR=foo
此時,僅為 shell 創建新的環境變量。您可以使用 echo 命令確認是否設置了變量。此變量不是環境變量,如果您使用 printenv 命令,其輸出將為空:
printenv MYVAR
現在我們可以使用 export 命令將此 shell 變量轉換為單個環境變量:
export MYVAR
現在 MYVAR 是一個環境變量,這會影響當前 shell 以及從當前 shell 啟動的所有進程。
您不必總是遵循這個漫長的過程來設置環境變量。您可以在單個命令中直接導出環境變量:
export MYENV=bar
您必須注意,通過這些命令設置的變量僅適用于當前會話。一旦關閉會話,這些變量就會丟失。要永久設置環境變量,您必須使用文本編輯器編輯 /etc/profile.d 目錄、~/.bashrc、/etc/environment 或 /etc/profile 文件。
持久意味著當您關閉 shell 會話或重新啟動時,您不需要重置環境變量的值。如果您希望環境變量可用于所有 shell 會話,甚至跨用戶,那么您必須在配置文件中添加環境變量。
使用/etc/environment文件為命令行和圖形界面添加整個系統(即所有用戶、所有進程)都可用的環境變量。該文件只接受 VAR_NAME="value" 格式的變量,不要使用導出。例如,使用您喜歡的編輯器打開 /etc/environment 文件,并使用以下格式添加環境變量:
VARIABLE_NAME=value
設置從當前用戶注銷并再次登錄以進行更改后。
使用/etc/profile配置文件設置在啟動登錄 shell 時為所有用戶自動加載的環境變量。使用 export 命令在用戶配置文件中聲明環境變量,如下所示:
export PATH=$PATH:/place/with/the/file
在~/.bashrc文件或~/.profile文件中設置一個用戶特定的環境變量,使用如下:
export JAVA_HOME=/opt/jdk/11export PATH="$JAVA_HOME/bin:$PATH"
運行source ~/.bashrcbash shell 命令以加載當前 shell 會話中的環境變量。
使用 unset 命令取消設置或刪除變量。
unset NAME
unset 命令刪除使用終端命令導出的變量。但是,您存儲在配置文件中的變量只會從當前 shell 會話中刪除。當您創建一個新的終端會話時,它們會自動重新設置。
您可以通過從配置文件中刪除變量來從 Linux 計算機中永久刪除變量。
我們學習了如何在 Linux 中列出和創建環境變量。我們還看到了如何通過編輯 bash 配置文件使變量在重啟后保持不變。
環境變量是設置常用值的好方法,只需使用變量而不是一次又一次地手動輸入值。本教程中列出的常用環境變量可用于場景 Linux 發行版,例如 Ubuntu、Debian、Redhat 。
主要分享低代碼、微服務、容器化、SAAS?、系統架構方面的的?內容??,希望?大家?點贊?,評論,關注?。