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指令:
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進程時,其讀取環境設定檔如下:
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的執行都會使用它一次。 ###以上是三類重要Linux檔案的用途與區別的詳細內容。更多資訊請關注PHP中文網其他相關文章!