這是我參與8月更文挑戰的第8天,活動詳情查看,活動詳情查看: 8月更文挑戰shell
Linux系統中,有三種文件類型出現的很是頻繁,那就是profile、bash_profile、bashrc文件。bash
由於名稱的緣故,不少人會把這三類文件的做用記混,所以咱們今天就來詳細盤點一下這三類文件的做用及區別。markdown
profile,路徑:/etc/profile
,用於設置系統級的環境變量和啓動程序,在這個文件下配置會對全部用戶生效。app
當用戶登陸(login)時,文件會被執行,並從/etc/profile.d
目錄的配置文件中查找shell設置。ide
通常不建議在/etc/profile
文件中添加環境變量,由於在這個文件中添加的設置會對全部用戶起做用。函數
當必須添加時,咱們能夠按如下方式添加:post
如,添加一個HOST值爲juejin.cn
的環境變量:ui
export HOST=juejin.cn
複製代碼
添加時,能夠在行尾使用;
號,也能夠不使用。lua
一個變量名能夠對應多個變量值,多個變量值須要使用:
進行分隔。url
添加環境變量後,須要從新登陸才能生效,也可使用source命令強制當即生效:
source /etc/profile
複製代碼
查看是否生效可使用echo命令:
$ echo $HOST
juejin.cn
複製代碼
bashrc文件用於配置函數或別名。bashrc文件有兩種級別:
系統級的位於/etc/bashrc
,對全部用戶生效。
用戶級的位於~/.bashrc
,僅對當前用戶生效。
bashrc文件只會對指定的shell類型起做用,bashrc只會被bash shell調用。
bash_profile
只對單一用戶有效,文件存儲位於~/.bash_profile
,該文件是一個用戶級的設置,能夠理解爲某一個用戶的profile目錄下。
這個文件一樣也能夠用於配置環境變量和啓動程序,但只針對單個用戶有效。
和profile文件相似,bash_profile也會在用戶登陸(login)時生效,也能夠用於設置環境變理。
但與profile不一樣,bash_profile只會對當前用戶生效。
這三種文件類型的差別用一句話表述就是:
/etc/profile
,/etc/bashrc
是系統全局環境變量設定;
~/.profile
,~/.bashrc
用戶家目錄下的私有環境變量設定。
當登入系統時候得到一個shell進程時,其讀取環境設定檔以下:
/etc/profile
,而後根據其內容讀取額外的設定的文檔,如/etc/profile.d
和/etc/inputrc
;~/.bash_profile
;~/.bash_login
;~/.profile
(這三個文檔設定基本上無差異,僅讀取上有優先關係);~/.bashrc
。至於~/.profile
與~/.bashrc
都具備個性化定製功能,但~/.profile
能夠設定本用戶專有的路徑、環境變量等,它只能登入的時候執行一次。
~/.bashrc
也是某用戶專有設定文檔,能夠設定路徑、命令別名,每次shell script的執行都會使用它一次。