1. 程式人生 > >linux下.bashrc檔案修改和生效

linux下.bashrc檔案修改和生效

1) .bashrc檔案 
在linux系統普通使用者目錄(cd /home/xxx)或root使用者目錄(cd /root)下,用指令ls -al可以看到4個隱藏檔案,

.bash_history 記錄之前輸入的命令

.bash_logout 當你退出時執行的命令

.bash_profile 當你登入shell時執行

.bashrc 當你登入shell時執行

請注意後兩個的區別:’.bash_profile’只在會話開始時被讀取一次,而’.bashrc’則每次開啟新的終端時,都要被讀取。

這些檔案是每一位使用者對終端功能和屬性設定,修改.bashrc可以改變環境變數PATH、別名alias和提示符。具體如何修改會在下面做介紹。

除了可以修改使用者目錄下的.bashrc檔案外,還可以修改如“/etc/profile”檔案、“/etc/bashrc”檔案及目錄“/etc /profile.d”下的檔案。但是修改/etc路徑下的配置檔案將會應用到整個系統,屬於系統級的配置,而修改使用者目錄下的.bashrc則只是限制在使用者應用上,屬於使用者級設定。兩者在應用範圍上有所區別,建議如需修改的話,修改使用者目錄下的.bashrc,即無需root許可權,也不會影響其他使用者。

2) PATH環境變數修改

PATH變數決定了shell 將到哪些目錄中尋找命令或程式。如果要執行的命令的目錄在 $PATH 中,您就不必輸入這個命令的完整路徑,直接輸入命令就可以了。一些第三方軟體沒有將可執行檔案放到 Linux 的標準目錄中。因此,將這些非標準的安裝目錄新增到 $PATH 是一種解決的辦法。此外,您也將看到如何處理一般的環境變數。

首先,作為慣例,所有環境變數名都是大寫。由於 Linux 區分大小寫,這點您要留意。當然,您可以自己定義一些變數,如’$path’、’$pAtH’,但 shell 不會理睬這些變數。

第二點是變數名有時候以’$’開頭,但有時又不是。當設定一個變數時,直接用名稱,而不需要加“$”,如

“PATH=/usr/bin:/usr/local/bin:/bin”

假如要獲取變數值的話,就要在變數名前加’$’: 
“echo $PATH” 
則會顯示當前設定的PATH變數“/usr/bin:/usr/local/bin:/bin”

否則的話,變數名就會被當作普通文字了: 
“echo PATH” 
顯示“PATH” 
處理 $PATH 變數要注意的第三點是:您不能只替換變數,而是要將新的字串新增到原來的值中。在大多數情況下,您不能用“PATH=/some /directory”,因為這將刪除 $PATH 中其他的所有目錄,這樣您在該終端執行程式時,就不得不給出完整路徑。所以,只能作新增:“PATH=$PATH:/some/directory”,假如你要新增/usr/local/arm/3.4.1/bin交叉編譯命令,則操作為“PATH=$PATH:/usr/local/arm/3.4.1/bin” 
這樣,PATH 被設成當前的值(以 $PATH 來表示)+新添的目錄。

到目前為止,你只為當前終端設定了新的 $PATH 變數。如果您開啟一個新的終端,執行 echo $PATH ,將顯示舊的 $PATH 值,而看不到你剛才新增的新目錄。因為你先前定義的是一個區域性環境變數(僅限於當前的終端)。

要定義一個全域性變數,使在以後開啟的終端中生效,您需要將區域性變數輸出(export),可以用”export”命令:

   export PATH=$PATH:/some/directory

現在如果開啟一個新的終端,輸入 echo $PATH ,也能看到新設定的$PATH 了。請注意,命令’export’只能改變當前終端及以後執行的終端裡的變數。對於已經執行的終端沒有作用。

為了將目錄永久新增到 $PATH ,只要將”export”的那行新增到.bashrc或/etc/bashrc檔案中。

3) alias別名 
一般在.bashrc或/etc/bashrc檔案裡有幾句話

alias rm=’rm -i’

alias cp=’cp -i’

alias mv=’mv -i’

有了這幾句話,當在終端中輸入“mv test.c led.c”實際上輸入的是“mv -i test.c led.c”,所以說alias是一個別名。你可以在該配置檔案中新增自己風格的別名,如“alias ll=’ls -l’”,只需要在終端中輸入“ll”就實現了“ls -l”的功能。還可以新增其他語句,隨自己喜好。

4) 提示符

當開啟一個控制檯(console) 時,最先看到的就是提示符(prompt),如:[[email protected] ~]#

在預設設定下,提示符將顯示使用者名稱、主機名(預設是’localhost’)、當前所在目錄(在 Unix 中,’~’表示您的 home 目錄)。

按照傳統,最後一個字元可以標識普通使用者($),還是’root’(#)。

可以通過 $PS1 變數來設定提示符。

命令“echo $PS1”,將顯示當前的設定。其中可用字元的含義在 man bash 的’PROMPTING’部分有說明。

如何才能完成理想的設定呢?對於健忘的初學者來講,預設設定有些不友好,因為提示符只顯示當前目錄的最後一部分。如果你看到象這樣的提示符

[[email protected] bin]$ 
則當前目錄可能是’/bin’、’/usr/bin’、’/usr/local/bin’及’/usr/X11R6/bin’。當然,你可以用

pwd (輸出當前目錄,print working directory)

能不能叫 shell 自動告訴你當前目錄呢?

當然可以。這裡我將提到的設定,包括提示符,大都包含在檔案’/etc/bashrc’中。您可以通過編輯各自 home 目錄下的’.bash_profile’和’.bashrc’來改變設定。

在 man bash 中的’PROMPTING’部分,對這些引數(parameter)有詳細說明。您可以加入一些小玩意,如不同格式的當前時間,命令的歷史記錄號,甚至不同的顏色。

一種更適當的設定: 
PS1=”[\u: \w]$ ” 
這樣,提示符就變成: 
[wsf: /usr/bin]$ 
你可以通過命令 export 來測試不同的設定(比如,export PS1=”\u: \w\$ “)。如果找到了適合的提示符,就將設定放到您的’.bashrc”中。這樣,每次開啟控制檯或終端視窗時,都會生效。

(5)舉例,生效方式 
這個檔案主要儲存個人的一些個性化設定,如命令別名、路徑等。下面是個例子:

# User specific aliases and functions

PATH="/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin"

LANG=zh_CN.GBK

export PATH LANG

alias rm='rm -i'

alias ls='/bin/ls -F --color=tty --show-control-chars'

例子中定義了路徑,語言,命令別名(使用rm刪除命令時總是加上-i引數需要使用者確認,使用ls命令列出檔案列表時加上顏色顯示)。

每次修改.bashrc後,使用source ~/.bashrc(或者 . ~/.bashrc)

就可以立刻載入修改後的設定,使之生效。

一般會在.bash_profile檔案中顯式呼叫.bashrc。登陸linux啟動bash時首先會

去讀取~/.bash_profile檔案,這樣~/.bashrc也就得到執行了,你的個性化設

置也就生效了。

 

轉載自https://blog.csdn.net/yangyu19910407/article/details/12101493