在Debian环境下,环境变量的优先级如下:
-
内核参数:内核参数是系统启动时由内核设置的,具有最高的优先级。可以通过
sysctl
命令查看和修改内核参数。 -
/etc/environment:这是一个全局配置文件,用于设置系统范围内的环境变量。它在系统启动时被读取,对所有用户和进程生效。优先级次于内核参数。
-
/etc/profile 和 /etc/profile.d/ 目录下的脚本:这些脚本在用户登录时执行,用于设置用户级别的环境变量。它们的优先级高于/etc/environment。
-
~/.bashrc 和 ~/.bash_profile(或 ~/.profile):这些文件是针对单个用户的配置文件,用于设置用户级别的环境变量。它们的优先级高于/etc/profile 和 /etc/profile.d/ 目录下的脚本。
-
~/.bash_aliases:这是一个针对单个用户的别名配置文件,用于设置用户级别的命令别名。它的优先级高于 ~/.bashrc 和 ~/.bash_profile(或 ~/.profile)。
-
当前shell会话中直接设置的环境变量:在当前shell会话中直接使用
export
命令设置的环境变量,优先级最高。这种设置只在当前shell会话中生效,关闭会话后失效。
总结一下,环境变量的优先级从高到低依次为:内核参数 > /etc/environment > /etc/profile 和 /etc/profile.d/ 目录下的脚本 > ~/.bashrc 和 ~/.bash_profile(或 ~/.profile)> ~/.bash_aliases > 当前shell会话中直接设置的环境变量。