Bash Profile 和 Bashrc 的區別
本教程解釋了 Bash 中 ~./bash_profile
和 ~/.bashrc
檔案之間的區別。
什麼是 Bash 中的啟動檔案
啟動檔案是在 shell 啟動後執行的檔案。啟動檔案取決於啟動的 shell 型別。shell 可以作為互動式 shell 或非互動式 shell 執行。
互動式 shell 是從終端上的使用者輸入讀取命令並將輸出顯示到終端的 shell。相反,非互動式 shell 不與終端關聯,例如執行指令碼。
互動式 shell 可以進一步分為兩個。它可以是互動式登入 shell 或互動式非登入 shell。
登入 shell 是使用 /bin/login
通過讀取 /etc/passwd
檔案成功登入後啟動的第一個程序。登入 shell 在你的使用者 ID 下執行。當你使用終端登入、切換到另一個使用者或使用 SSH 時,會執行登入 shell。
登入 shell 啟動一個非登入 shell。它可以是一個以沒有登入的程序啟動的 shell,也可以是從另一個 shell 啟動的 shell。程序使用 shell 可執行檔案的名稱來啟動非登入 shell。
Bash 中 ~/.bash_profile
和 ~/.bashrc
的區別
一旦 shell 作為互動式登入 shell 啟動,它會從 ~/.profile
讀取命令,但 Bash 會從 ~/.bash_profile
讀取命令。Bash 只能讀取~/.bash_profile
,如果檔案不存在,Bash 會讀取~/.profile
。
~/.profile
在 Linux 發行版中比 ~/.bash_profile
更常用,因為它被所有 shell 讀取和執行。相反,~/.bash_profile
只能由 Bash 讀取和執行。
當 shell 作為互動式非登入 shell 啟動時,它會從 ~/.bashrc
檔案中讀取並執行命令。
~/.bash_profile
和 ~/.bashrc
作為點檔案位於使用者的主目錄中。使用者主目錄中的檔案用於進行僅適用於該特定使用者的配置。
這些配置通常會覆蓋系統配置。 ~/.bash_profile
包含啟動程式配置和使用者特定的環境配置,而 ~/.bashrc
檔案儲存特定使用者的函式和別名。
位於 /etc/
目錄中的檔案用於進行適用於系統上所有使用者的系統範圍配置。這些檔案包括 /etc/profiles
和 /etc/bashrc
。
使用 ls
命令檢視 Bash 中的啟動檔案
要檢視 ~/.bash_profile
或 ~/profile
和 ~/.bashrc
,請導航你的主目錄並鍵入命令 ls -al
。
-a
選項通知 ls
命令列出所有檔案,包括以點開頭的檔案。 -l
選項通知 ls
命令使用長列表格式列出檔案。
下圖顯示了 ~/.bashrc
和 ~/.profile
檔案。