profile、bashrc、bash_profile的做用與區別

這是我參與8月更文挑戰的第8天,活動詳情查看,活動詳情查看: 8月更文挑戰shell

Linux系統中,有三種文件類型出現的很是頻繁,那就是profile、bash_profile、bashrc文件。bash

由於名稱的緣故,不少人會把這三類文件的做用記混,所以咱們今天就來詳細盤點一下這三類文件的做用及區別。markdown

1 profile

1.1 做用

profile,路徑:/etc/profile,用於設置系統級的環境變量和啓動程序,在這個文件下配置會對全部用戶生效。app

當用戶登陸(login)時,文件會被執行,並從/etc/profile.d目錄的配置文件中查找shell設置。ide

1.2 在profile中設置環境變量

通常不建議/etc/profile文件中添加環境變量,由於在這個文件中添加的設置會對全部用戶起做用。函數

當必須添加時,咱們能夠按如下方式添加:post

如,添加一個HOST值爲juejin.cn的環境變量:ui

export HOST=juejin.cn
複製代碼

添加時,能夠在行尾使用;號,也能夠不使用。lua

一個變量名能夠對應多個變量值,多個變量值須要使用:進行分隔。url

添加環境變量後,須要從新登陸才能生效,也可使用source命令強制當即生效:

source /etc/profile
複製代碼

查看是否生效可使用echo命令:

$ echo $HOST
juejin.cn
複製代碼

2 bashrc

bashrc文件用於配置函數或別名。bashrc文件有兩種級別:

  • 系統級
  • 用戶級

2.1 系統級

系統級的位於/etc/bashrc,對全部用戶生效。

2.2 用戶級

用戶級的位於~/.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進程時,其讀取環境設定檔以下:

  1. 首先讀入全局環境變量設定檔/etc/profile,而後根據其內容讀取額外的設定的文檔,如/etc/profile.d/etc/inputrc
  2. 根據不一樣使用者賬號,於其家目錄內讀取~/.bash_profile
  3. 讀取失敗則會讀取~/.bash_login
  4. 再次失敗則讀取~/.profile(這三個文檔設定基本上無差異,僅讀取上有優先關係);
  5. 最後,根據用戶賬號讀取~/.bashrc

至於~/.profile~/.bashrc都具備個性化定製功能,但~/.profile能夠設定本用戶專有的路徑、環境變量等,它只能登入的時候執行一次。

~/.bashrc也是某用戶專有設定文檔,能夠設定路徑、命令別名,每次shell script的執行都會使用它一次。

相關文章
相關標籤/搜索