Linux下配置檔案修改PATH環境變數、alias別名、個性化提示符,env
配置檔案
linux系統普通使用者目錄(cd ~)或root使用者目錄(cd /root)下,用指令ls -al可以看到4個隱藏檔案,
~/.bash_history記錄之前輸入的命令
~/.bash_logout當你退出bash shell時執行的命令
~/.bash_profile當你登入shell時執行(使用者登入時,該檔案僅僅執行一次。預設情況下執行使用者的~/.bashrc檔案)
~/.bashrc當你登入shell時執行(登入時以及每次開啟新的shell時,該檔案被讀取)包含專用於使用者的bash shell的bash資訊
~/.bash_profile和~/.bashrc的區別:~/.bash_profile只在會話開始時被讀取一次,而~/.bashrc則每次開啟新的終端時,都要被讀取。
~/.bash_profile 是互動式、login 方式進入 bash 執行的;~/.bashrc 是互動式 non-login 方式進入 bash 執行的。通常二者設定大致相同,所以通常前者會呼叫後者。
這些檔案是每一位使用者對終端功能和屬性設定,修改~/.bashrc可以改變環境變數PATH、別名alias和提示符。
除了修改~/.bashrc檔案外,還可以修改如“/etc/profile”檔案【/etc/profile檔案為系統的每個使用者設定環境資訊】、“/etc/bashrc”檔案【為每一個執行bash shell的使用者執行此檔案】及目錄“/etc /profile.d”下的檔案。
但是修改/etc路徑下的配置檔案將會應用到整個系統,屬於系統級的配置;而修改~/.bashrc則只是限制在使用者應用上,屬於使用者級設定。
修改~/.bashrc,無需root許可權,不會影響其他使用者。
/etc/profile中設定的變數(全域性)可以作用於任何使用者,而~/.bashrc等中設定的變數(區域性)只能繼承/etc/profile中的變數,他們是"父子"關係。
執行順序為:/etc/profile -> (~/.bash_profile | ~/.bash_login | ~/.profile) -> ~/.bashrc -> /etc/bashrc -> ~/.bash_logout
首先啟動 /etc/profile 檔案,然後再啟動使用者目錄下的 ~/.bash_profile、 ~/.bash_login或 ~/.profile檔案中的其中一個。
如果 ~/.bash_profile檔案存在的話,一般還會執行 ~/.bashrc檔案。因為在 ~/.bash_profile檔案中一般會有下面的程式碼:
1 2 3 |
if [-f~/.bashrc]; then
.. /bashrc
fi
|
~/.bashrc中,一般還會有以下程式碼:
1 2 3 |
if [-f /etc/bashrc ]; then
. /etc/bashrc
fi
|
所以,~/.bashrc會呼叫 /etc/bashrc檔案。最後,在退出shell時,還會執行 ~/.bash_logout檔案。
PATH環境變數修改
PATH變數決定了shell 將到哪些目錄中尋找命令或程式。如果要執行的命令的目錄在 $PATH 中,您就不必輸入這個命令的完整路徑,直接輸入命令就可以了。一些第三方軟體沒有將可執行檔案放到 Linux 的標準目錄中。因此,將這些非標準的安裝目錄新增到 $PATH 是一種解決的辦法。
作為慣例,所有環境變數名都是大寫。(Linux 區分大小寫)
如:在檔案/etc/profile中新增:
1 2 |
export JAVA_HOME= /opt/java/jdk
export JRE_HOME=${JAVA_HOME} /jre
|
alias別名
一般在.bashrc或/etc/bashrc檔案裡有定義alias的幾行
1 2 3 |
alias rm =’ rm -i’
alias cp =’ cp -i’
alias mv =’ mv -i’
|
可以在該配置檔案中新增自己風格的別名,如
1 2 |
alias cls= clear
alias ls = '/bin/ls-F--color=tty--show-control-chars'
|
也許你用慣了top,我們也可以用top來開啟htop。
編輯/root/.bashrc檔案,新增如下程式碼
1 2 3 |
if [-f /usr/local/bin/htop ]; then
alias top =’ /usr/local/bin/htop ’
fi
|
提示符
1 |
echo $PS1 #顯示當前的提示符設定
|
可以通過編輯各自home目錄下的.bash_profile和.bashrc來設定個性化提示符。(設定格式可查man bash手冊中的PROMPTING部分)
例如PS1=”[\u: \w]$ ” ,提示符就變成:[root:/usr/bin]$
1 |
PS1= '${debian_chroot:+($debian_chroot)}\[\033[01;32m\][\u\[\033[01;34m\]\[\033[00m\]:\[\033[01;35m\]\w\[\033[01;32m\]\$]'
|
每次修改.bashrc後,使用source ~/.bashrc(或者 . ~/.bashrc)、source /etc/profile,就可以立刻載入修改後的設定,使之生效。(也可以重啟生效)
定製環境變數修改/etc/profile檔案,所有使用者的shell都有權使用這些環境變數,缺點是可能會給系統帶來安全性問題。(修改針對所有的使用者的,所有的shell)
修改~/.bashrc檔案更為安全,它可以把使用這些環境變數的許可權控制到使用者級別
在/etc/profile裡設定系統環境變數時,路徑末尾不能以"/"結尾,否則將導致整個PATH變量出錯。