天天看點

Linux系統中三類重要檔案的作用與差別

linux系統中,有三種檔案類型出現的非常頻繁,那就是profile、bash_profile、bashrc檔案。

因為名稱的緣故,很多人會把這三類檔案的作用記混,是以我們今天就來詳細盤點一下這三類檔案的作用及差別。

1. profile檔案

1.1 profile檔案的作用

profile(/etc/profile),用于設定系統級的環境變量和啟動程式,在這個檔案下配置會對所有使用者生效。

當使用者登入(login)時,檔案會被執行,并從/etc/profile.d目錄的配置檔案中查找shell設定。

1.2 在profile中添加環境變量

一般不建議在/etc/profile檔案中添加環境變量,因為在這個檔案中添加的設定會對所有使用者起作用。

當必須添加時,我們可以按以下方式添加:

如,添加一個host值為magedu.com的環境變量:

export host=magedu.com

添加時,可以在行尾使用;号,也可以不使用。

一個變量名可以對應多個變量值,多個變量值需要使用:進行分隔。

添加環境變量後,需要重新登入才能生效,也可以使用source指令強制立即生效:

source /etc/profile

檢視是否生效可以使用echo指令:

$ echo $host

magedu.com

2. bashrc檔案

bashrc檔案用于配置函數或别名。bashrc檔案有兩種級别:

系統級的位于/etc/bashrc、使用者級的位于~/.bashrc,兩者分别會對所有使用者和目前使用者生效。

bashrc檔案隻會對指定的shell類型起作用,bashrc隻會被bash shell調用。

3. bash_profile檔案

bash_profile隻對單一使用者有效,檔案存儲位于~/.bash_profile,該檔案是一個使用者級的設定,可以了解為某一個使用者的profile目錄下。

這個檔案同樣也可以用于配置環境變量和啟動程式,但隻針對單個使用者有效。

和profile檔案類似,bash_profile也會在使用者登入(login)時生效,也可以用于設定環境變理。

但與profile不同,bash_profile隻會對目前使用者生效。

4. 差異總結

這三種檔案類型的差異用一句話表述就是:

/etc/profile,/etc/bashrc 是系統全局環境變量設定;~/.profile,~/.bashrc使用者家目錄下的私有環境變量設定。

當登入系統時候獲得一個shell程序時,其讀取環境設定檔如下:

Linux系統中三類重要檔案的作用與差別

4.1 首先讀入全局環境變量設定檔/etc/profile,然後根據其内容讀取額外的設定的文檔,如/etc/profile.d和/etc/inputrc;

4.2 根據不同使用者帳号,于其家目錄内讀取~/.bash_profile;

讀取失敗則會讀取~/.bash_login;

再次失敗則讀取~/.profile(這三個文檔設定基本上無差别,僅讀取上有優先關系);

4.3 最後,根據使用者帳号讀取~/.bashrc。

至于~/.profile與~/.bashrc都具有個性化定制功能,但~/.profile可以設定本使用者專有的路徑、環境變量等,它隻能登入的時候執行一次。

~/.bashrc也是某使用者專有設定文檔,可以設定路徑、指令别名,每次shell script的執行都會使用它一次。

作者:糖豆

來源:51cto

繼續閱讀