shell: .bash_profile和.bashrc的區別(如何設定生效)

來源:互聯網
上載者:User

/etc/profile:此檔案為系統的每個使用者佈建環境資訊,當使用者第一次登入時,該檔案被執行.
並從/etc/profile.d目錄的設定檔中搜集shell的設定.
/etc/bashrc:為每一個運行bash shell的使用者執行此檔案.當bash shell被開啟時,該檔案被讀取.
~/.bash_profile:每個使用者都可使用該檔案輸入專用於自己使用的shell資訊,當使用者登入時,該
檔案僅僅執行一次!預設情況下,他設定一些環境變數,執行使用者的.bashrc檔案.
~/.bashrc:該檔案包含專用於你的bash shell的bash資訊,當登入時以及每次開啟新的shell時,該
該檔案被讀取.
~/.bash_logout:當每次退出系統(退出bash shell)時,執行該檔案. 

另外,/etc/profile中設定的變數(全域)的可以作用於任何使用者,而~/.bashrc等中設定的變數(局部)只能繼承/etc/profile中的變數,他們是"父子"關係.
 
~/.bash_profile 是互動式、login 方式進入 bash 啟動並執行
~/.bashrc 是互動式 non-login 方式進入 bash 啟動並執行
通常二者設定大致相同,所以通常前者會調用後者。

設定生效:可以重啟生效,也可以使用命令:source 
alias php=/var/eyouim/pub/php/bin/php
source /etc/profile

2.3. 使用者環境配置

為使Bash更好地為我們服務,我們需定製bash shell環境。

2.3.1. .bash_profile、.bashrc、和.bash_logout

上 面這三個檔案是bash shell的使用者環境設定檔,位於使用者的主目錄下。其中.bash_profile是最重要的一個設定檔,它在使用者每次登入系統時被讀取,裡面的所有 命令都會被bash執行。.profile(由Bourne Shell和Korn Shell使用)和.login(由C Shell使用)兩個檔案是.bash_profile的同義字,目的是為了相容其它Shell。在Debian中使用.profile檔案代 替.bash_profile檔案。

.bashrc檔案會在bash shell調用另一個bash shell時讀取,也就是在shell中再鍵入bash命令啟動一個新shell時就會去讀該檔案。這樣可有效分離登入和子shell所需的環境。但一般 來說都會在.bash_profile裡調用.bashrc指令碼以便統一配置使用者環境。

.bash_logout在退出shell時被讀取。所以我們可把一些清理工作的命令放到這檔案中。

在 /etc目錄的bash.bashrc和profile是系統級(全域)的設定檔,當在使用者主目錄下找不到.bash_profile 和.bashrc\時,就會讀取這兩個檔案。.bash_history是bash shell的記錄檔案,裡面記錄了你在bash shell中輸入的所有命令。可通過HISSIZE環境變數設定在記錄檔案裡儲存記錄的條數。alias l = 'ls -l'是設定別名的語句,把它放在這些配置文檔中就可使我們能用簡單的'l'命令,代替'ls -l'命令。

當我們修改了這些配置件後,可用source .bash_profile命令使它修改內容馬上生效。2.3.2. 選項

bash shell中的選項可控制shell的行為和功能,我們可以通過shopt命令來設定。使用set命令也可以,但它已被shopt替代,但為了向下兼 容,set命令還是可以使用的。使用不帶參數的shopt命令可以列出當前shell中只能由shopt設定的選項,用shopt -o可列出可由set命令設定的選項。

下面是一些可由set命令基本的選項,預設是關閉的。

emacs                  進入emacs編輯模式
vi                     進入vi編輯模式
ignoreeof              不允許單獨使用Ctrl_D退出的用法,要使用exit。與IGNOREEOF=10等價
noclobber              不允許重新導向覆蓋已存在檔案
noglob                 不允許擴充檔案名稱萬用字元
nounset                使用未定義的變數時給出錯誤

下面是一些只能由shopt命令設定的選項。

cdspell          自動改正cd命令參數中的小錯誤
hostcomplete     以@開頭時,按tab鍵可進行主機名稱的自動完成
dotgblob         以點開始的檔案名稱被包含在路徑名擴充中
mailwarn         顯示郵件警告資訊

shopt命令的選項如下:

-p          顯示可設定選項及當前取值
-s          設定每一選項為on
-u          設定每一選項為off
-q          不輸出資訊
-o          

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.