Linux

Linux - 分別獲取本地使用者系統環境變數列表

  • March 21, 2021

我可以使用printenv命令獲取系統環境變數,但我需要單獨的變數數據:

如何分別列出獲取本地(會話範圍)、使用者(使用者範圍)和系統(系統範圍、全域)環境變數?

作業系統:Debian-like Linux (x64), kernel: 4.19

我認為您對 Linux 環境變數的工作方式有誤解。正在執行的 shell 的環境變數僅針對正在執行的 shell實例定義。除此之外,它們沒有任何意義或相關性。如果您在正在使用的 shell 中更改 $PATH 變數,則該更改只會影響該 shell 的實例,而不影響您可能正在執行的其他實例。

當 shell 啟動並且使用者登錄時,可以通過各種 shell 腳本設置環境變數,這些腳本可以在系統範圍或每個使用者的基礎上定義預設環境變數。對於bash,這些是諸如/etc/profile(系統範圍)或~/.bash_profile~/.bashrc(特定於使用者)之類的腳本。據我所知,無法從正在執行的 shell 中確定設置了特定變數的位置——您需要檢查這些文件。

您應該注意的另一個概念是導出變數。exportin 命令可bash用於標記應將哪些變數導出到正在執行的 shell 可能創建的新子 shell。

另外,請注意環境變數是特定於特定 shell 程序的,它們對於 Linux 系統不是全域的。因此,變數bash(我一直用作範例)可能與其中使用的變數不同csh(儘管可能有一些相似之處)和/或它們可能被設置為不同的預設值。

引用自:https://unix.stackexchange.com/questions/640111