文章來源 | IT筆錄linux
Linux系統中,有三種文件類型出現的很是頻繁,那就是profile、bash_profile、bashrc文件。shell
由於名稱的緣故,不少人會把這三類文件的做用記混,所以咱們今天就來詳細盤點一下這三類文件的做用及區別。bash
1. profile文件微信
1.1 profile文件的做用運維
profile(/etc/profile),用於設置系統級的環境變量和啓動程序,在這個文件下配置會對全部用戶生效。ide
當用戶登陸(login)時,文件會被執行,並從/etc/profile.d目錄的配置文件中查找shell設置。函數
1.2 在profile中添加環境變量linux運維
通常不建議在/etc/profile文件中添加環境變量,由於在這個文件中添加的設置會對全部用戶起做用。spa
當必須添加時,咱們能夠按如下方式添加:orm
如,添加一個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進程時,其讀取環境設定檔以下:
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運維
技術交流羣:485374463