如果你平時在命令列上花費了大量時間,那么你可能會萌生出希望定制 Shell 環境的想法,今天本文就和大家講解該如何實作你們的這個想法,其實可以通過創建別名、向環境變數 $PATH 添加新目錄或更改 Shell 提示符的外觀以實作在命令列上節約時間,
在你尋找解決方法的程序中可能會看到過一些教程,比如說將組態檔放在 .bashrc 或者 .bash_ profile 中,亦或是將配置放在另一個可以通過 Bash Shell 讀取和執行的檔案中,
接下來,我將向大家講解 Bash 啟動檔案以及 .bashrc 和 .bash_ profile 之間的區別:
Interactive Login 和 Non-Login Shell
Bash 被呼叫時,會從一組啟動檔案中讀取并執行命令,至于讀取哪些檔案取決于 Shell 是作為互動式登錄呼叫還是作為非登錄 Shell 呼叫,
其實,Shell 可以是互動式的,也可以是非互動式的,簡單一點地說,互動式 Shell 是一種讀寫用戶終端的 Shell,而非互動式 Shell 完全是與終端無關的 Shell, 值得注意的是,互動式 Shell 可以是登錄 Shell ,也可以是非登錄 Shell,
有幾種情況可以呼叫登錄 Shell,一種是當用戶通過 ssh 或本地方式遠程登錄到終端,還有就是使用 --login 選項啟動 Bash ,比如在 Shell 提示符中鍵入 bash 或打開新的 Gnome 終端選項卡時,互動式非登錄 Shell 從登錄 Shell 呼叫,
Bash啟動檔案
當 Bash 作為互動式登錄 Shell 被呼叫時,它將查找 /etc/profile 檔案,如果該檔案存在,它將運行檔案中列出的命令,然后 Bash 按以下的順序搜索 ~/.bash_profile 、~/.bash_login 和 ~/.profile 檔案,并在第一個找到的檔案中執行命令,
當 Bash 作為互動式非登錄 Shell 被呼叫時,它從 ~/.bashrc 檔案讀取并執行命令,需要指出的是該檔案必須存在并且它是可讀的才行,
.bashrc 和 .bash_組態檔之間的差異
在 Bash 作為互動式登錄 Shell 被呼叫的情況下,.bash_profile 才會被讀取、執行,而 .bashrc 是啟動互動式非登錄 Shell 時才被執行的,一般使用 .bash_profile 來運行只運行一次的命令,比如運行自定義環境變數 PATH 的命令,
每次啟動新 Shell 時應該將運行的命令放在 .bashrc 檔案中,這些命令包括別名和函式、自定義提示、歷史自定義等,
通常,~/.bash_profile 包含的命令來源于 .bashrc 檔案中,示例如下:

這意味著每次登錄到終端時,上面兩個檔案都會被讀取并執行其中的命令,
大多數 Linux 發行版都是使用 ~/.profile 而不是 ~/.bash_profile,因為 ~/.profile 檔案可以被所有 Shell 讀取,而 ~/.bash_ profile 僅能被 Bash Shell 讀取,
如果你的系統上沒有我上面所講的這些啟動檔案,那么你也可以自己創建它們,
結論
最后,總結一下今天我們所講的重點,.bash_profile 和 .bashrc 是在呼叫 Bash 時運行的包含 Shell 命令的檔案,.bash_profile 可以在互動式登錄 Shell 上被讀取和執行,而 .bashrc 可以在非登錄 Shell 上被讀取和執行,
如果你還對 .bashrc 這些檔案有疑問或是有修改 Shell 提示符的更好的方法,請留言告訴我唄!
公眾號:良許Linux
有識訓?希望老鐵們來個三連擊,給更多的人看到這篇文章
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/4925.html
標籤:Linux
上一篇:在物理機上安裝Ubuntu指南
