類別 Linux 系統上的環境變數

類別 Linux 系統上的環境變數

如何以獨立於 shell 環境變數的最通用方式為使用者設定環境變數(例如類似 Bourne 的 shell、bahsrc、zshrc、zshenv 的設定文件,..)?這個想法是在使用者登入期間為使用者設定環境變量,並使它們可用於任何進程(不僅由 shell 進程生成,而且由任何其他進程生成),包括任何類型的 shell?

答案1

這個 Ubuntu 文檔談論~/.pam_environment

會話範圍的環境變數

適合僅影響特定使用者(而不是整個系統)的環境變數設定的檔案是~/.pam_environment~/.profile。編輯這些文件之一後,您應該重新登入以便初始化變數。

~/.pam_environment

該文件專門用於設定使用者環境。它不是一個腳本文件,而是由每行一個賦值表達式組成。此範例將變數 FOO 設定為文字字串並修改 PATH 變數:

FOO=bar
PATH DEFAULT=${PATH}:${HOME}/MyPrograms

筆記:

  1. 在執行簡單的變數賦值(如FOO=bar範例所示)時,您可能不會引用該值。

  2. 用於修改 PATH 的語法與腳本檔案不同,它是變數擴充功能所必需的。

  3. ~/.pam_environment 當您使用各種 GUI 設定語言或區域格式時寫入。因此,例如,如果您透過~/.pam_environment手動編輯設定 LC_TIME,並且隨後使用語言支援 GUI 變更區域格式設置,則您的條目將被覆寫。

該文件以及/etc/environment似乎被查閱pam_env.so我相信這將作為登入過程的一部分發生,並將與任何 shell 分開。

相關內容