Linux CentOS7环境变量
所遇问题
工作上,同事的测试环境上出了点问题让同事挠了头;出于好心的我帮他完美解决,解决的同时也收获了些许技能。
问题:已经设置好/etc/profile中变量名称,但是一旦切换终端就会失效。经过我的排查,很快找到了原因。因为~/.bash_profile为用户变量权重比全局变量高,所以每次重新打开的终端都会读取用户变量中的值。
解决:根据需要更改只保留系统变量/etc/profile或用户变量~/.bash_profile
下面总结分析给大家
全局环境变量 /etc/profile
用来设置系统环境参数;如java环境等
对所有用户生效
bash相关全局环境变量 /etc/bashrc
用来运行bash命令时,那么这里的变量就会生效
对所有用户生效
用户环境变量 ~/.bash_profile
用来设置当前用户的环境变量,只对当前用户生效
~波浪线指的是用户的根目录
bash相关用户环境变量 ~/.bashrc
与/etc/bashrc类似,用来运行bash命令时,只对当前用户生效
~波浪线指的是用户的根目录
环境变量的运行顺序
1、环境局限性顺序是 全局变量 > 用户变量
2、环境权重性顺序是:进程层次 > 用户层次 > 全局层次