![類別 Linux 系統上的環境變數](https://rvso.com/image/1438160/%E9%A1%9E%E5%88%A5%20Linux%20%E7%B3%BB%E7%B5%B1%E4%B8%8A%E7%9A%84%E7%92%B0%E5%A2%83%E8%AE%8A%E6%95%B8.png)
如何以獨立於 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
筆記:
在執行簡單的變數賦值(如
FOO=bar
範例所示)時,您可能不會引用該值。用於修改 PATH 的語法與腳本檔案不同,它是變數擴充功能所必需的。
~/.pam_environment
當您使用各種 GUI 設定語言或區域格式時寫入。因此,例如,如果您透過~/.pam_environment
手動編輯設定 LC_TIME,並且隨後使用語言支援 GUI 變更區域格式設置,則您的條目將被覆寫。
該文件以及/etc/environment
似乎被查閱pam_env.so
我相信這將作為登入過程的一部分發生,並將與任何 shell 分開。