配置文件
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變量出錯。