Linux環(huán)境變量PATH設(shè)置
本文發(fā)布于博客:frankwtq
- 由來(lái):安裝RVM時(shí)狭园,由于使用的是zsh的shell读处,所以需要設(shè)置環(huán)境變量才能正常啟動(dòng)RVM。所以了解了一下Linux中環(huán)境變量的設(shè)置妙啃,以便后面再遇到類似的問(wèn)題能夠很快解決档泽。
參考資料:
相關(guān)背景
- Linux是一個(gè)多用戶的操作系統(tǒng)馆匿。每個(gè)用戶登錄系統(tǒng)后,都會(huì)有一個(gè)專用的運(yùn)行環(huán)境燥滑。通常每個(gè)用戶默認(rèn)的環(huán)境都是相同的渐北,這個(gè)默認(rèn)環(huán)境實(shí)際上就是一組環(huán)境變量的定義。用戶可以對(duì)自己的運(yùn)行環(huán)境進(jìn)行定制铭拧,其方法就是修改相應(yīng)的系統(tǒng)環(huán)境變量赃蛛。
相關(guān)文件介紹
/etc/profile:此文件為系統(tǒng)的每個(gè)用戶設(shè)置環(huán)境信息恃锉,當(dāng)用戶第一次登錄時(shí),該文件被執(zhí)行呕臂。在這里修改的內(nèi)容是對(duì)所有用戶起作用的破托。所以如果你有對(duì)/etc/profile有修改的話必須得重啟系統(tǒng),你的修改才會(huì)生效歧蒋,此修改對(duì)每個(gè)用戶都生效土砂。
/etc/bashrc:為每一個(gè)運(yùn)行 bash shell 的用戶執(zhí)行此文件。當(dāng) bash shell 被打開時(shí)谜洽,該文件被讀取萝映。如果你想對(duì)所有的使用bash的用戶修改某個(gè)配置并在以后打開的bash都生效的話可以修改這個(gè)文件,修改這個(gè)文件不用重啟阐虚,重新打開一個(gè)bash即可生效序臂。
~/.bash_profile: 每個(gè)用戶都可使用該文件輸入專用于自己使用的 shell 信息,當(dāng)用戶登錄時(shí)实束,該文件僅僅執(zhí)行一次奥秆。此文件類似于/etc/profile,也是需要需要重啟才會(huì)生效咸灿,/etc/profile對(duì)所有用戶生效吭练,~/.bash_profile只對(duì)當(dāng)前用戶生效。
~/.bashrc:該文件包含專用于你的bash shell的bash信息,當(dāng)?shù)卿洉r(shí)以及每次打開新的shell時(shí),該文件被讀取.(每個(gè)用戶都有一個(gè).bashrc文件析显,在用戶目錄下,符號(hào)‘~’就表示用戶目錄)
~/.bash_logout:當(dāng)每次退出系統(tǒng)(退出bash shell)時(shí),執(zhí)行該文件签赃。
/etc/profile和/etc/bashrc都是系統(tǒng)級(jí)別的谷异,修改后可以在所有用戶中起作用;/.bash_profile锦聊、/.bashrc和~/.bash_logout都是用戶級(jí)別的歹嘹,修改后只會(huì)作用于當(dāng)前用戶。
帶profile的文件都是需要重新進(jìn)入用戶時(shí)才會(huì)生效孔庭,帶bashrc的則是打開新的shell時(shí)生效尺上;
啟動(dòng)過(guò)程
執(zhí)行順序:/etc/profile -> (~/.bash_profile | ~/.bash_login | ~/.profile) -> ~/.bashrc -> /etc/bashrc -> ~/.bash_logout
Linux環(huán)境變量相關(guān)命令
- 顯示環(huán)境變量HOME
$ echo $HOME
- 設(shè)置新的環(huán)境變量HELLO
$ export HELLO="Hello"
- 顯示所有環(huán)境變量
$ env
- 顯示所有本地定義的Shell變量
¥ set
- 清除環(huán)境變量
$ export TEST="test"
$ env|grep TEST #此時(shí)顯示:TEST =test
$ unset $TEST
$ env|grep TEST #此時(shí)已經(jīng)沒(méi)有顯示了,說(shuō)明沒(méi)有對(duì)應(yīng)的環(huán)境變量了
- 設(shè)置只讀變量
readonly TEST
設(shè)置Linux環(huán)境變量
之前介紹的使用export命令設(shè)置環(huán)境變量是在命令行中直接執(zhí)行圆到,這樣設(shè)置的環(huán)境變量在退出shell時(shí)就會(huì)失效怎抛。要想設(shè)置永久有效的環(huán)境變量就需要修改之前提到的文件。
PATH聲明
PATH=$PATH:<PATH 1>:<PATH 2>:<PATH 3>:------:<PATH N>
你可以自己加上指定的路徑芽淡,中間用冒號(hào)隔開
需要注意的是马绝,最好不要把當(dāng)前路徑”./”放到PATH里,這樣可能會(huì)受到意想不到的攻擊挣菲。
舉例:在/etc/profile文件中添加環(huán)境變量
特點(diǎn):所有用戶富稻;永久有效掷邦;生效需要重新進(jìn)入用戶
root權(quán)限:
# vim /etc/profile
export CLASSPATH=./JAVA_HOME/lib;$JAVA_HOME/jre/lib
要想修改完文件后就立即生效,可以在命令行中執(zhí)行:
# source /etc/profile
Source命令也稱為“點(diǎn)命令”椭赋,也就是一個(gè)點(diǎn)符號(hào)(.)抚岗。source命令通常用于重新執(zhí)行剛修改的初始化文件,使之立即生效哪怔,而不必注銷并重新登錄
常用環(huán)境變量
- PATH 決定了shell將到哪些目錄中尋找命令或程序
- HOME 當(dāng)前用戶主目錄
- HISTSIZE 歷史記錄數(shù)
- LOGNAME 當(dāng)前用戶的登錄名
- HOSTNAME 指主機(jī)的名稱
- SHELL 當(dāng)前用戶Shell類型
- LANGUGE 語(yǔ)言相關(guān)的環(huán)境變量宣蔚,多語(yǔ)言可以修改此環(huán)境變量
- MAIL 當(dāng)前用戶的郵件存放目錄
- PS1 基本提示符,對(duì)于root用戶是#蔓涧,對(duì)于普通用戶是$