在 CentOS 系統中,環境變量(env variables)的優先級從高到低如下:
當前 shell 的局部變量:這些變量僅在當前 shell 會話中有效,關閉 shell 后將丟失。局部變量的優先級最高。
當前 shell 的局部變量(通過 source 命令加載的腳本中設置):這些變量在當前 shell 會話中有效,關閉 shell 后將丟失。它們的優先級低于直接在 shell 中設置的局部變量。
用戶級別的環境變量:這些變量在用戶的 ~/.bashrc
、~/.bash_profile
或 ~/.profile
文件中設置。它們在用戶登錄時生效,對所有新開的 shell 會話有效。優先級低于局部變量。
系統級別的環境變量:這些變量在 /etc/profile
、/etc/bashrc
或 /etc/environment
文件中設置。它們對所有用戶的所有新開的 shell 會話有效。優先級低于用戶級別的環境變量。
系統服務級別的環境變量:這些變量在系統服務(如 systemd)的配置文件中設置。它們對所有用戶的所有新開的 shell 會話以及系統服務生效。優先級低于系統級別的環境變量。
需要注意的是,如果同一個環境變量在不同的配置文件中被多次設置,那么優先級高的配置文件中的設置會覆蓋優先級低的配置文件中的設置。例如,如果在 ~/.bashrc
和 /etc/profile
中都設置了 PATH
變量,那么在用戶的 shell 會話中,~/.bashrc
中的設置會覆蓋 /etc/profile
中的設置。