在Ubuntu环境下,环境变量的优先级如下:
本地配置文件:
~/.bashrc
:针对单个用户的配置。/etc/bash.bashrc
:系统级的配置,适用于所有用户。登录Shell配置文件:
~/.profile
:针对单个用户的登录Shell配置。/etc/profile
:系统级的登录Shell配置,适用于所有用户。交互式Shell配置文件:
~/.bash_profile
:针对单个用户的交互式Shell配置,通常会source ~/.bashrc
。/etc/bash.bash_profile
:系统级的交互式Shell配置。系统级配置文件:
/etc/environment
:系统级的环境变量配置,适用于所有用户和进程。启动脚本:
/etc/profile.d/
目录下的脚本:这些脚本会在登录时执行,可以用来设置环境变量。当前Shell会话:
export
命令设置的环境变量。优先级从高到低依次为:
export
命令设置的环境变量。/etc/environment
。/etc/profile.d/
目录下的脚本。/etc/profile
。~/.bash_profile
(如果存在且source了~/.bashrc
)。~/.profile
。/etc/bash.bashrc
。~/.bashrc
。需要注意的是,~/.bash_profile
和~/.profile
通常不会同时存在,因为~/.bash_profile
会source ~/.bashrc
。如果两者都存在,~/.bash_profile
的优先级更高。
此外,/etc/environment
是一个特殊的文件,它设置的环境变量是全局的,且不会被子进程继承。因此,在某些情况下,它的优先级可能会高于其他配置文件。