在 CentOS 系统中,环境变量的优先级从高到低如下:
当前 shell 的局部变量:这些变量仅在当前 shell 会话中有效,关闭 shell 后将丢失。例如,通过 export VARIABLE=value 命令设置的变量。
当前 shell 的环境变量:这些变量在当前 shell 会话中有效,可以通过 set 命令查看。例如,通过 export VARIABLE=value 命令设置的变量。
用户级别的环境变量:这些变量存储在用户的 ~/.bashrc、~/.bash_profile 或 ~/.profile 文件中。当用户登录时,这些文件会被读取并设置相应的环境变量。例如,在 ~/.bashrc 文件中添加 export VARIABLE=value。
系统级别的环境变量:这些变量存储在 /etc/profile、/etc/bashrc 或 /etc/environment 文件中。这些文件在系统启动时被读取并设置相应的环境变量。例如,在 /etc/profile 文件中添加 export VARIABLE=value。
默认环境变量:这些变量是由系统或 shell 自动设置的,例如 PATH、HOME 等。
优先级顺序:局部变量 > 当前 shell 的环境变量 > 用户级别的环境变量 > 系统级别的环境变量 > 默认环境变量。
当多个相同名称的环境变量存在时,优先级高的变量值会覆盖优先级低的变量值。例如,如果在用户级别的环境变量和系统级别的环境变量中都设置了 PATH 变量,那么用户级别的 PATH 变量将覆盖系统级别的 PATH 变量。