在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是一个特殊的文件,它设置的环境变量是全局的,且不会被子进程继承。因此,在某些情况下,它的优先级可能会高于其他配置文件。