/etc/profile
:此文件為系統的每個用戶設置環境信息,當用戶第一次登錄時,該文件被執行.并從 /etc/profile.d
目錄的配置文件中搜集 shell
的設置。
/etc/bashrc
:為每一個運行 bash shell
的用戶執行此文件。當 bash shell
被打開時,該文件被讀取。
~/.bash_profile
:每個用戶都可使用該文件輸入專用于自己使用的 shell
信息,當用戶登錄時,該文件僅僅執行一次。默認情況下,他設置一些環境變量,執行用戶的.bashrc文件。
~/.bashrc
:該文件包含專用于你的 bash shell
的 bash
信息,當登錄時以及每次打開新的 shell
時,該該文件被讀取。
~/.bash_logout
:少見,但是意味著當每次退出系統(退出 bash shell
)時,執行該文件。
/etc/profile
中設定的變量(全局)的可以作用于任何用戶, 而~/.bashrc
等中設定的變量(局部)只能繼承/etc/profile
中的變量,他們是"父子"關系。
通常我們修改
bashrc
文件,因為有些linux
的發行版本不一定有profile
這個文件。
profile
用于登錄式 shell
, 而 bashrc
用于每個交互式 shell
。
~/.bash_profile
是交互式、login
方式進入 bash
運行的。
~/.bashrc
是交互式 non-login
方式進入 bash
運行的
通常二者設置大致相同,所以通常前者會調用后者。
所以一般優先把變量設置在 .bashrc
里面。比如在 crontab
里面執行一個命令,.bashrc
設置的環境變量會生效,而 .bash_profile
不會。
設置生效,可以使用命令:
source ~/.bashrc
,source
也可以使用.
代替,即. ~/.bashrc
。