Linux
Linux - 分別獲取本地使用者系統環境變數列表
我可以使用
printenv
命令獲取系統環境變數,但我需要單獨的變數數據:如何分別列出獲取本地(會話範圍)、使用者(使用者範圍)和系統(系統範圍、全域)環境變數?
作業系統:
Debian-like Linux (x64), kernel: 4.19
。
我認為您對 Linux 環境變數的工作方式有誤解。正在執行的 shell 的環境變數僅針對正在執行的 shell實例定義。除此之外,它們沒有任何意義或相關性。如果您在正在使用的 shell 中更改 $PATH 變數,則該更改只會影響該 shell 的實例,而不影響您可能正在執行的其他實例。
當 shell 啟動並且使用者登錄時,可以通過各種 shell 腳本設置環境變數,這些腳本可以在系統範圍或每個使用者的基礎上定義預設環境變數。對於
bash
,這些是諸如/etc/profile
(系統範圍)或~/.bash_profile
或~/.bashrc
(特定於使用者)之類的腳本。據我所知,無法從正在執行的 shell 中確定設置了特定變數的位置——您需要檢查這些文件。您應該注意的另一個概念是導出變數。
export
in 命令可bash
用於標記應將哪些變數導出到正在執行的 shell 可能創建的新子 shell。另外,請注意環境變數是特定於特定 shell 程序的,它們對於 Linux 系統不是全域的。因此,變數
bash
(我一直用作範例)可能與其中使用的變數不同csh
(儘管可能有一些相似之處)和/或它們可能被設置為不同的預設值。