问题还原: 我们都知道,要修改centos的全局配置,可以在/etc/profile这个文件里面修改,比如,我需要修改JAVA_HOME变量 ,那么一般来说我们只要在其中修改,source 一下就行了。
但是我这次遇到的情况是:查看 /etc/profile里,JAVA_HOME的路径,与我修改的新的路径是一致的,
使用$JAVA_HOME 查看,如下图:
![](https://www.codeprj.com/image/aHR0cHM6Ly9pbWFnZXMyMDE3LmNuYmxvZ3MuY29tL2Jsb2cvMTIzMzA3NC8yMDE3MTEvMTIzMzA3NC0yMDE3MTEzMDIxMzYyMDY2NC03NTE4MTY5MDYucG5n.png)
但是问题来了,过了一会儿,又跳到了另外一个相似但不同的目录:
![](https://www.codeprj.com/image/aHR0cHM6Ly9pbWFnZXMyMDE3LmNuYmxvZ3MuY29tL2Jsb2cvMTIzMzA3NC8yMDE3MTEvMTIzMzA3NC0yMDE3MTEzMDIxMzYxNjAzOS0xODE2NDY4Mjg2LnBuZw==.png)
经过排查,发现问题出现在:./bashrc 这个文件里,
.bashrc:这个文件主要保存个人的一些个性化设置,如命令别名、路径等。也即在同一个服务器上,只对某个用户的个性化设置相关。
一般会在.bash_profile文件中显式调用.bashrc。登陆linux启动bash时首先会去读取~/.bash_profile文件,这样~/.bashrc也就得到执行了,你的个性化设置也就生效。
![](https://www.codeprj.com/image/aHR0cHM6Ly9pbWFnZXMyMDE3LmNuYmxvZ3MuY29tL2Jsb2cvMTIzMzA3NC8yMDE3MTEvMTIzMzA3NC0yMDE3MTEzMDIxMzYwOTE2NC0xNzM5MjU4NDc4LnBuZw==.png)
我的理解是这样的: 你在bashrc里面定义优先级应该是高于 profile里面的内容的,所以如果两个文件profile和bashrc里面对同一个 设置、路径进行了定义,那么系统则会优先选择bashrc的内容。
所以,针对我遇到的这个JAVA_HOME路径问题,我采取的解决方法是:直接bashrc里面的定义。
当然你也可以留下bashrc里面的定义,删掉profile的定义。
|