/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