我们平时在配置一些环境变量的时候,经常会遇到这几个文件的修改,有的文档是修改/etc/bashrc
,而有的文档则是要求修改.bashrc
,那么这几个文件到底有什么关系呢?
首先说一下相同点,那就是这几个文件都可以设置环境变量,并且生效时间都是在用户登录的时候(或者使用source
命令立即生效)。
相同点说完了,我们主要说一下不同点,这里从生效范围和执行顺序两个方面说
生效范围
/etc/profile
和/etc/bashrc
,针对这两个文件的修改,比如添加环境变量,会在全局生效,针对所有用户,也就是说任何一个用户登录后,都可以使用这个环境变量。
.bashrc
和.bash_profile
,这两个文件的修改,只是针对当前登录用户,并不影响其他登录用户的使用。比如我们在A用户下设置了变量TEST
,B用户登录是无法使用这个变量的。
我们需要修改哪个文件呢?
这个就需要根据自己的需求,如果希望当前设置对所有用户生效,那么就可以修改/etc/profile
或/etc/bashrc
,如果只希望对自己的用户生效,那么就修改.bashrc
或.bash_profie
.
有人提出如果修改java或python的环境变量肯定希望所有用户都使用,那么是不是就需要修改/etc/profile
或/etc/bashrc
呢?
但是如果你设置的是python3,而其他用户想要使用python2呢?所以最好是修改自己用户下的.bashrc
或.bash_profile
文件。
执行顺序
用户登录后,这几个文件是按顺序执行的,这就意味着最后执行的那个文件,优先级最高。
我测试的方法是,逐个修改这几个文件,为同一个变量设置不同的值,然后依次登录,观察变量的结果。最后得出这几个文件的执行顺序是:
优先级顺序是相反的
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)