bashrc 與 bash_profile 的區別


如果您不熟悉命令列介面,您可能遇到過 bashrc 和 bash_profile 這些術語。這些檔案位於您的主目錄中,用於自定義您的 shell 環境。但是,許多使用者經常混淆這兩個檔案之間的區別。在本文中,我們將深入探討 bashrc 和 bash_profile 之間的區別,並解釋它們的工作原理。

什麼是 Bashrc?

bashrc 是 Bash shell 的配置檔案,它是大多數 Linux 發行版和 macOS 上的預設 shell。每次開啟新的終端視窗時都會執行此檔案,其中包含在 shell 環境中執行的命令。bashrc 用於設定環境變數、定義別名和建立函式。它還用於自定義終端中顯示的提示符。

什麼是 bash_profile?

bash_profile 是 Bash shell 的另一個配置檔案,但它僅在您登入帳戶時執行一次。此檔案用於設定環境變數並執行會話開始時僅需執行一次的命令。bash_profile 通常用於設定 PATH 變數,這是一個確定 shell 在何處搜尋可執行檔案的環境變數。

bashrc 和 bash_profile 之間有什麼區別?

bashrc 和 bash_profile 執行類似的功能,但它們的作用域不同,執行時間也不同。

執行時間

每次開啟新的終端視窗時都會執行 bashrc,而 bash_profile 僅在您登入帳戶時執行一次。這意味著您對 bashrc 的任何更改都會立即生效,而對 bash_profile 的更改只有在您登出並重新登入後才會生效。

作用域

bashrc 用於為每個單獨的終端視窗自定義 shell 環境。這意味著您對 bashrc 的任何更改只會影響當前的終端視窗。另一方面,bash_profile 用於設定整個會話所需的變數。這意味著對 bash_profile 的更改將影響所有終端視窗。

常用用法

bashrc 通常用於設定別名、定義函式和自定義提示符。bash_profile 通常用於設定 PATH 變數和執行會話開始時僅需執行一次的命令。

示例

以下是一些示例,用於說明 bashrc 和 bash_profile 之間的區別:

示例 1:設定別名

假設您想為 ls 命令設定一個別名,以便以長格式列出檔案。您可以透過將以下行新增到您的 bashrc 檔案中來實現:

alias ll='ls -l'

這將建立一個 ll 別名,您可以使用它代替 ls -l 以長格式列出檔案。但是,如果您希望此別名對所有終端視窗都可用,則應將此行新增到您的 bash_profile 檔案中。

示例 2:設定 PATH 變數

假設您已在您的主目錄中安裝了一個自定義應用程式,並且您想將其位置新增到您的 PATH 變數中,以便您可以從 shell 中的任何位置執行它。您可以透過將以下行新增到您的 bash_profile 檔案中來實現:

export PATH=$PATH:/home/user/myapp/bin

這將 /home/user/myapp/bin 新增到 PATH 變數中,以便您可以從 shell 中的任何位置執行應用程式。

示例 3:自定義提示符

假設您想自定義終端視窗中顯示的提示符,以包含當前日期和時間。您可以透過將以下行新增到您的 bashrc 檔案中來實現:

export PS1='\u@\h \D{%F %T} \w\$ '

這將自定義提示符以顯示使用者名稱、主機名、日期和時間以及當前工作目錄。但是,此自定義將僅應用於當前終端視窗。如果您想為所有終端視窗自定義提示符,則應將此行新增到您的 bash_profile 檔案中。

使用 bashrc 和 bash_profile 的其他技巧

檢查您的 shell 環境

要檢查您當前的 shell 環境,您可以使用 echo 命令列印 SHELL 變數的值。例如,要檢查您是否正在使用 Bash,請在您的終端中執行以下命令:

echo $SHELL

這應該輸出 Bash shell 的路徑,通常是 /bin/bash。

使用文字編輯器編輯檔案

您可以使用任何文字編輯器(例如 nano 或 vim)來編輯 bashrc 和 bash_profile 檔案。這些檔案位於您的主目錄中,您可以透過在終端中鍵入以下命令來訪問它們:

nano ~/.bashrc

這將在 nano 文字編輯器中開啟 bashrc 檔案,您可以在其中進行任何需要的更改。類似地,您可以使用以下命令開啟 bash_profile 檔案:

nano ~/.bash_profile

使用 source 命令

對 bashrc 或 bash_profile 檔案進行更改後,您需要在當前 shell 環境中重新載入更改。為此,您可以使用 source 命令。例如,要重新載入 bashrc 檔案,請在您的終端中執行以下命令:

source ~/.bashrc

這將在當前終端視窗中重新載入更改。類似地,您可以使用以下命令重新載入 bash_profile 檔案:

source ~/.bash_profile

小心語法錯誤

編輯 bashrc 或 bash_profile 檔案時,請注意語法錯誤。即使是很小的錯誤,例如缺少引號或錯位的分號,也可能導致您的 shell 環境行為異常或根本無法工作。為了避免語法錯誤,最好在將更改應用於主環境之前,在單獨的終端視窗中測試您的更改。

保持檔案井然有序

當您向 bashrc 和 bash_profile 檔案新增更多命令和自定義項時,它們可能會很快變得雜亂無章且難以管理。為了保持檔案的井然有序,請考慮將相關的命令組合在一起,並使用註釋來標記不同的部分。

例如,您可以在 bashrc 檔案中建立一個用於別名的部分,另一個用於函式,另一個用於提示符自定義。同樣,您可以使用註釋來標記每個部分並解釋每個命令的作用。

備份您的檔案

您的 bashrc 和 bash_profile 檔案是重要的系統檔案,其中包含 shell 環境的關鍵配置資訊。為了避免意外刪除或損壞這些檔案,最好定期備份它們。

您可以透過將檔案複製到單獨的目錄或使用 Git 等版本控制系統來建立檔案的備份。這樣,如果出現任何問題,您可以輕鬆地將檔案恢復到其先前狀態。

使用系統範圍的 bashrc 檔案

除了您的個人 bashrc 和 bash_profile 檔案外,您的系統也可能有一個適用於所有使用者的全域性 bashrc 檔案。在 Linux 系統上,此檔案通常位於 /etc/bashrc,而在 macOS 上則位於 /etc/bashrc_Apple_Terminal。

系統範圍的 bashrc 檔案是新增適用於系統上所有使用者的命令和自定義項(例如系統範圍的別名或環境變數)的好地方。只需注意,對該檔案的更改將影響系統上的所有使用者,因此在進行更改時要謹慎。

注意安全

您的 bashrc 和 bash_profile 檔案可能包含敏感資訊,例如密碼、API 金鑰或其他憑據。為了保護這些資訊,請注意安全最佳實踐,例如保持檔案私密、使用強密碼以及避免以純文字形式儲存敏感資訊。

如果您需要在 shell 環境中儲存敏感資訊,請考慮使用密碼管理器或加密檔案來保護您的資料。或者,您可以使用環境變數來儲存敏感資訊,這些資訊不會儲存在您的檔案中,並且可以單獨加密或保護。

結論

總而言之,bashrc 和 bash_profile 都是 Bash shell 的重要配置檔案。每次開啟新的終端視窗時都會執行 bashrc,並用於為每個單獨的終端視窗自定義 shell 環境。另一方面,bash_profile 僅在您登入帳戶時執行一次,並用於設定環境變數並執行會話開始時僅需執行一次的命令。

瞭解這兩個檔案之間的區別對於自定義 shell 環境並確保您的更改在您想要的時間和地點生效非常重要。透過有效地使用這些檔案,您可以建立一個適合您需求的自定義高效的 shell 環境。

更新於:2023年4月11日

10K+ 次瀏覽

開啟你的職業生涯

完成課程獲得認證

開始學習
廣告