配置 Linux 環(huán)境變量的六種方法
在定制安裝軟件時(shí),通常需要配置環(huán)境變量。下面列出了環(huán)境變量的不同配置方法。
Linux中讀取環(huán)境變量的方法:
- 使用export命令可以顯示當(dāng)前系統(tǒng)定義的所有環(huán)境變量。
- 使用echo $PATH命令可以輸出當(dāng)前PATH環(huán)境變量的值。
這兩個(gè)命令的作用如下:
export:
echo $PATH:
其中,PATH變量定義了運(yùn)行命令的搜索路徑,并使用冒號(hào)“:”分隔不同的路徑。在使用export命令定義時(shí),可以添加雙引號(hào)或不添加。
Linux環(huán)境變量配置方法一:export PATH
使用export命令直接修改PATH的值,并增加JDK環(huán)境變量:
注意事項(xiàng):
- 生效時(shí)間:立即生效
- 生效期限:僅對(duì)當(dāng)前終端有效,在窗口關(guān)閉后失效
- 生效范圍:僅對(duì)當(dāng)前用戶有效
- 別忘了將原始配置,即$PATH部分,添加到已配置的環(huán)境變量中,以避免覆蓋原始配置
Linux環(huán)境變量配置方法二:vim ~/.bashrc
通過(guò)修改用戶目錄下的~/.bashrc文件進(jìn)行配置:
注意事項(xiàng):
- 生效時(shí)間:當(dāng)同一用戶打開(kāi)新終端時(shí)生效,或手動(dòng)執(zhí)行source ~/.bashrc
- 生效期限:永久生效
- 生效范圍:僅對(duì)當(dāng)前用戶有效
- 如果有后續(xù)的環(huán)境變量加載文件覆蓋了PATH定義,可能會(huì)導(dǎo)致其失效
Linux環(huán)境變量配置方法三:vim ~/.bash_profile
與修改~/.bashrc文件類似,也需要在文件末尾添加新的路徑:
注意事項(xiàng):
- 生效時(shí)間:當(dāng)同一用戶打開(kāi)新終端時(shí)生效,或手動(dòng)執(zhí)行source /.bash_profile
- 生效期限:永久生效 · 生效范圍:僅對(duì)當(dāng)前用戶有效
- 如果沒(méi)有/.bash_profile文件,可以編輯~/.profile文件或創(chuàng)建一個(gè)新文件
Linux環(huán)境變量配置方法四:vim /etc/bashrc
該方法是修改系統(tǒng)配置,需要管理員權(quán)限(例如root)或?qū)ξ募膶懭霗?quán)限:
注意事項(xiàng):
- 生效時(shí)間:新開(kāi)終端生效,或手動(dòng)執(zhí)行source /etc/bashrc生效
- 生效期限:永久生效
- 生效范圍:對(duì)所有用戶有效
Linux環(huán)境變量配置方法五:vim /etc/profile
該方法修改系統(tǒng)配置,需要管理員權(quán)限或?qū)ξ募膶懭霗?quán)限,與vim /etc/bashrc類似:
注意事項(xiàng):
- 生效時(shí)間:新開(kāi)終端生效,或手動(dòng)執(zhí)行source /etc/profile生效
- 生效期限:永久生效
- 生效范圍:對(duì)所有用戶有效
Linux環(huán)境變量配置方法六:vim /etc/environment
該方法是修改系統(tǒng)環(huán)境配置文件,需要管理員權(quán)限或?qū)ξ募膶懭霗?quán)限:
注意事項(xiàng):
- 生效時(shí)間:新開(kāi)終端生效,或手動(dòng)執(zhí)行source /etc/environment生效
- 生效期限:永久生效
- 生效范圍:對(duì)所有用戶有效
Linux環(huán)境變量加載原理分析
以上列舉了環(huán)境變量的各種配置方法,那么Linux是如何加載這些配置的呢?它們的加載順序是怎樣的?
特定的加載順序會(huì)導(dǎo)致同名環(huán)境變量定義被覆蓋或無(wú)效。
環(huán)境變量的分類 環(huán)境變量可以簡(jiǎn)單地分為用戶定義的環(huán)境變量和系統(tǒng)級(jí)別的環(huán)境變量。
- 用戶級(jí)環(huán)境變量定義文件:/.bashrc、/.profile(有些系統(tǒng)是:~/.bash_profile)
- 系統(tǒng)級(jí)環(huán)境變量定義文件:/etc/bashrc、/etc/profile(有些系統(tǒng)是:/etc/bash_profile)、/etc/environment
此外,在用戶環(huán)境變量中,系統(tǒng)會(huì)先讀取~/.bash_profile(或~/.profile)文件,如果沒(méi)有這樣的文件,它會(huì)讀取~/.bash_login,然后根據(jù)這些文件的內(nèi)容讀取~/.bashrc。
如何測(cè)試Linux環(huán)境變量的加載順序
為了測(cè)試不同文件的環(huán)境變量加載順序,我們?cè)诿總€(gè)環(huán)境變量定義文件的第一行定義相同的環(huán)境變量 UU_ORDER,其值將其自身的值連接到當(dāng)前文件名后面。
需要修改的文件如下:
并根據(jù)當(dāng)前文件的絕對(duì)文件名相應(yīng)地修改冒號(hào)后面的內(nèi)容。
修改完成后保存,打開(kāi)一個(gè)新的窗口,然后使用echo $UU_ORDER命令觀察變量的值:
可以推斷出,Linux 加載環(huán)境變量的順序如下:
- /etc/environment
- /etc/profile
- /etc/bash.bashrc
- /etc/profile.d/test.sh
- ~/.profile
- ~/.bashrc
Linux 環(huán)境變量文件加載詳解 從以上測(cè)試中,可以很容易地得出 Linux 加載環(huán)境變量的順序如下:
系統(tǒng)環(huán)境變量 -> 用戶定義的環(huán)境變量 /etc/environment -> /etc/profile -> ~/.profile
打開(kāi) /etc/profile 文件,您會(huì)發(fā)現(xiàn)在文件代碼中會(huì)加載 /etc/bash.bashrc 文件,然后檢查 /etc/profile.d/ 目錄中的 .sh 文件并加載它們。
接下來(lái),打開(kāi)/.profile文件,您會(huì)發(fā)現(xiàn)文件中加載了/.bashrc文件。
接下來(lái),打開(kāi) ~/.profile 文件,可以發(fā)現(xiàn)在該文件中加載了 ~/.bashrc 文件。
從 ~/.profile 文件中的代碼中,不難發(fā)現(xiàn)當(dāng)用戶登錄時(shí),只會(huì)讀取一次 /.profile 文件,而每次運(yùn)行 Shell 腳本時(shí),都會(huì)讀取一次 ~/.bashrc。
一些小技巧
你可以自定義一個(gè)環(huán)境變量文件,比如在某個(gè)項(xiàng)目下定義 uusama.profile,使用 export 定義一系列變量在該文件中,然后在 ~/.profile 文件后面添加 sourc uusama.profile,這樣就可以在登錄的 Shell 腳本中使用自己定義的一系列變量。
你也可以使用 alias 命令為一些命令定義別名,比如 alias rm=”rm -i”(需要使用雙引號(hào)),并將該代碼添加到 ~/.profile 中,這樣每次使用 rm 命令時(shí),就很方便地使用 rm -i 命令了。