看了這篇文章:https://blog.csdn.net/u010842515/article/details/51593936shell
/etc/profile、/etc/bashrc、~/.bash_profile、~/.bashrc很容易混淆,他們之間有什麼區別?它們的做用究竟是什麼?
/etc/profile: 用來設置系統環境參數,好比$PATH. 這裏面的環境變量是對系統內全部用戶生效的。
/etc/bashrc: 這個文件設置系統bash shell相關的東西,對系統內全部用戶生效。只要用戶運行bash命令,那麼這裏面的東西就在起做用。
~/.bash_profile: 用來設置一些環境變量,功能和/etc/profile 相似,可是這個是針對用戶來設定的,也就是說,你在/home/user1/.bash_profile 中設定了環境變量,那麼這個環境變量只針對 user1 這個用戶生效.
~/.bashrc: 做用相似於/etc/bashrc, 只是針對用戶本身而言,不對其餘用戶生效。
另外/etc/profile中設定的變量(全局)的能夠做用於任何用戶,而~/.bashrc等中設定的變量(局部)只能繼承/etc/profile中的變量,他們是"父子"關係.
~/.bash_profile 是交互式、login 方式進入 bash 運行的,意思是隻有用戶登陸時纔會生效。
~/.bashrc 是交互式 non-login 方式進入 bash 運行的,用戶不必定登陸,只要以該用戶身份運行命令行就會讀取該文件。bash
這裏咱們能夠看到,/etc/profile和~./bashrc_profile是等價的,/etc/bashrc和~/.bashrc是等價的,區別只是針對的用戶範圍不一樣,前者是針對全部用戶的,然後者是針對單個用戶的。這裏重點注意一句話:「/etc/bashrc: 這個文件設置系統bash shell相關的東西,對系統內全部用戶生效。只要用戶運行bash命令,那麼這裏面的東西就在起做用。」咱們剛纔提示的問題就是bash命令找不到,如今咱們在/etc/bashrc內從新配置所需命令的環境變量,source /etc/bashrc使配置生效,再次執行上面的程序,就能看到相應命令的正確的返回結果了。spa