在添加环境变量的时候,我们会去修改配置文件
如果留意过,网上博文,有些在/etc/profile文件中配置的,有些是在~./bash_profile文件中配置的,等等
那么,/etc/profile、~/.profile、~/.bashrc、~./bash_profile这几个配置文件有什么区别呢?
~/.profile ~/.bashrc和~./bash_profile
.bashrc
The individual per-interactive-shell startup file.
这个文件主要保存个人的一些个性化设置,如命令别名、路径等。定义了路径,语言,命令别名(使用rm删除命令时总是加上-i参数需要用户确认,使用ls命令列出文件列表时加上颜色显示)。每次修改.bashrc后,使用source ~/.bashrc就可以立刻加载修改后的设置,使之生效。一般会在.bash_profile文件中显式调用.bashrc。
登陆linux启动bash时首先会去读取/.bash_profile文件,里面会调用/.bashrc,这样/.bashrc也就得到执行了,你的个性化设置也就生效了
全局profile和用户下的~/.profile
用户可以在Profile文件中加入环境变量,比如JAVA_HOME...这样重新登录之后,这些环境变量都会得以设置,不用每次都手工设置。
Unix/Linux有两个profile文件
1./etc/profile:是全局profile文件,设置后会影响到所有用户
2./home/username/.profile或.bash_profile是针对特定用户的,可以针对用户,来配置自己的环境变量。
注意:profile是unix上才有的;bash_profile是Linux下有的(Linux下,用户目录没有.profile文件)
/home/username/.profile或.bash_profile,都是隐藏文件,需要使用ls -a才能看到。
Bash登陆(login)的时候,Profile执行的顺序
1)先执行全局Profile, /etc/profile
接着bash会检查使用者的HOME目录中,是否有 .bash_profile 或者 .bash_login或者 .profile,若有,则会执行其中一个,执行顺序为:
.bash_profile 最优先 > .bash_login其次 > .profile 最后
总之,就是全局或者局部,他们之间有调用关系及调用优先级
参考:https://www.jianshu.com/p/b39fd35e2360