1. profile文件
1.1 profile文件的作用
profile(/etc/profile),用于設(shè)置系統(tǒng)級的環(huán)境變量和啟動程序,在這個文件下配置會對所有用戶生效。
當(dāng)用戶登錄(login)時,文件會被執(zhí)行,并從/etc/profile.d目錄的配置文件中查找shell設(shè)置。
1.2 在profile中添加環(huán)境變量
一般不建議在/etc/profile文件中添加環(huán)境變量,因為在這個文件中添加的設(shè)置會對所有用戶起作用。
當(dāng)必須添加時,我們可以按以下方式添加:
如,添加一個HOST值為magedu.com的環(huán)境變量:
export HOST=magedu.com
添加時,可以在行尾使用;號,也可以不使用。
一個變量名可以對應(yīng)多個變量值,多個變量值需要使用:進(jìn)行分隔。
添加環(huán)境變量后,需要重新登錄才能生效,也可以使用source命令強(qiáng)制立即生效:
source /etc/profile
查看是否生效可以使用echo命令:
$ echo $HOST
magedu.com
2. bashrc文件
bashrc文件用于配置函數(shù)或別名。bashrc文件有兩種級別:
系統(tǒng)級的位于/etc/bashrc、用戶級的位于~/.bashrc,兩者分別會對所有用戶和當(dāng)前用戶生效。
bashrc文件只會對指定的shell類型起作用,bashrc只會被bash shell調(diào)用。
3. bash_profile文件
bash_profile只對單一用戶有效,文件存儲位于~/.bash_profile,該文件是一個用戶級的設(shè)置,可以理解為某一個用戶的profile目錄下。
這個文件同樣也可以用于配置環(huán)境變量和啟動程序,但只針對單個用戶有效。
和profile文件類似,bash_profile也會在用戶登錄(login)時生效,也可以用于設(shè)置環(huán)境變理。
但與profile不同,bash_profile只會對當(dāng)前用戶生效。
4. 差異總結(jié)
這三種文件類型的差異用一句話表述就是:
/etc/profile,/etc/bashrc 是系統(tǒng)全局環(huán)境變量設(shè)定;~/.profile,~/.bashrc用戶家目錄下的私有環(huán)境變量設(shè)定。
當(dāng)?shù)侨胂到y(tǒng)時候獲得一個shell進(jìn)程時,其讀取環(huán)境設(shè)定檔如下:
三類重要Linux文件的用途與區(qū)別三類重要Linux文件的用途與區(qū)別
4.1 首先讀入全局環(huán)境變量設(shè)定檔/etc/profile,然后根據(jù)其內(nèi)容讀取額外的設(shè)定的文檔,如/etc/profile.d和/etc/inputrc;
4.2 根據(jù)不同使用者帳號,于其家目錄內(nèi)讀取~/.bash_profile;
讀取失敗則會讀取~/.bash_login;
再次失敗則讀取~/.profile(這三個文檔設(shè)定基本上無差別,僅讀取上有優(yōu)先關(guān)系);
4.3 最后,根據(jù)用戶帳號讀取~/.bashrc。
至于~/.profile與~/.bashrc都具有個性化定制功能,但~/.profile可以設(shè)定本用戶專有的路徑、環(huán)境變量等,它只能登入的時候執(zhí)行一次。
~/.bashrc也是某用戶專有設(shè)定文檔,可以設(shè)定路徑、命令別名,每次shell script的執(zhí)行都會使用它一次。