Bash Profile 和 Bashrc 的區別

Fumbani Banda 2023年1月30日 2022年5月11日
  1. 什麼是 Bash 中的啟動檔案
  2. Bash 中 ~/.bash_profile~/.bashrc 的區別
  3. 使用 ls 命令檢視 Bash 中的啟動檔案
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 檔案。

啟動檔案

Fumbani Banda avatar Fumbani Banda avatar

Fumbani is a tech enthusiast. He enjoys writing on Linux and Python as well as contributing to open-source projects.

LinkedIn GitHub

相關文章 - Linux Bash