在添加環境變量的時候,我們會去修改配置文件
如果留意過,網上博文,有些在/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