linux shell configuration files

來源:互聯網
上載者:User
文章目錄
  • login shell vs non-login shell
  • .bash_profile vs .bashrc
  • 那到底寫到哪個檔案呢?

在 Unix* Like 環境下工作時,不免會遇到 bash 環境變數的配置。而每次面對 $HOME 目錄下的一些 .bash* 檔案時,總會暫時性的忘記該修改那個好。

實際中在那個檔案中添加配置資訊都沒有問題,都可以正常工作。那為什麼要設定兩個設定檔呢?它們的區別是什嗎?

尋找 bash 的協助文檔。可以找到下面的描述。

~/.bash_profile
The personal initialization file, executed for login shells
~/.bashrc
The individual per-interactive-shell startup file

.bash_profile 在登入 shell 時執行,而 .bashrc 會在不是以 login 方式開啟 shell 時執行(比如執行 /bin/bash )。

login shell vs non-login shell

不論你是坐在電腦旁或者通過 ssh 遠程登入主機,以使用者名稱/密碼登入終端時,.bash_profile 都會在初始化命令列提示符之前執行。

如果你已登入到機器上,並且在 Gnome 或 KDE 案頭下開啟了一個新的終端(通常這種方式開啟 xterm),那麼 .bashrc 會在初始化命令列提示符之前執行。當然上面提到的,通過在終端執行 /bin/bash 開啟一個新的 bash 樣本時,同樣也會調用 .bashrc 。

.bash_profile vs .bashrc

舉例來說,如果你想在每次登入機器時,都在終端印表機器的診斷資訊(目前使用者,記憶體使用量、負載平衡等),則需要將配置資訊寫入 .bash_profile。而如果你想在每次開啟終端時進行提示,則記入 .bashrc 。

這樣做的好處是針對某些應用情境,可以進行更精細的配置。

上面的描述並不適用於 Mac OS ,對於 Terminal.app ,每次運行時,都只執行 .bash_profile。

那到底寫到哪個檔案呢?

大多數情況下,你不想為 login shell 和 non-login shell 兩種方式分別維護設定檔,因為實際上維護的這兩個設定檔通常用完成相似的工作。比如設定 PATH 環境變數,希望在兩種方式下都能正常執行,你可以在 .bash_profile 中執行 source .bashrc 命令,並將 PATH 變數設定資訊存放到 .bashrc 中。

vim ~/.bash_profile    if [ -f ~/.bashrc ]; then        source ~/.bashrc    fi

這種情況下,在 login 到機器時,.bashrc 檔案也會被執行。

現在新版的 Linux 通常也都已經考慮到了這個問題,通常都會在 .bash_profile 中添加如下的代碼:

[root@vsso ~]# cat .bash_profile # .bash_profile# Get the aliases and functionsif [ -f ~/.bashrc ]; then        . ~/.bashrcfi# User specific environment and startup programsPATH=$PATH:$HOME/binexport PATHunset USERNAME

所以一般性的共通內容,都可以寫入到 .bashrc 檔案中。 

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.