1. 環境變量的種類
- 全局環境變量
- 局部環境變量
1.1 全局環境變量
-
全局環境變量對於所有的shell都適用(父shell與子shell)
-
全局環境變量可以使用命令
env
和printenv
顯示- 顯示個別環境變量的值使用
printenv
命令,使用env
命令會報錯
- 顯示個別環境變量的值使用
1.2 局部環境變量
- Linux中沒有專門查看局部環境變量的命令,只有使用set命令才能查看包括局部環境變量的所有環境變量
2. 設置自定義環境變量
2.1 設置局部用戶自身定義變量
- 局部環境變量小寫,系統環境變量大寫
- 創建變量, 使用 $變量名 就能夠引用環境變量
- 當創建的變量有空格的時候,創建變量時應該使用單引號來界定字符串的首和尾,沒有單引號的話,bash shell會以為空格后下一個詞是另一個要執行的命令
- 用戶自定義設置的局部環境變量只能在當前shell下使用,在子shell與父shell中都不能使用
2.2 設置全局環境變量
- 設置全局環境變量的步驟只比設置局部環境變量多出了一步
- 創建局部變量后可以使用
export 變量名
來將局部變量轉化為全局環境變量
- 刪除全局環境變量使用
unset 變量名
命令 - 注意:子shell中修改父shell創建的全局環境變量不會影響父shell,只會對當前子shell產生影響
3. 設置PATH環境變量
- 我們有時候自己創建了一個腳本,或者在網上下載了一個軟件到本地使用,但是只能在當前目錄下執行,我們想在所有的shell 以及其他地方中使用,這時候就應該將腳本所在目錄的位置添加到PATH環境變量中.
- 查看PATH環境變量:
echo $PATH
- Linux中通常有以下幾個環境變量文件,我們需要合理地選擇:
/etc/profile
/etc/bash.bashrc
$HOME/.bash_profile
$HOME/.bashrc
$HOME/.bash_login
$HOME/.profile
- 在上邊列舉的幾個環境變量文件中,/etc/profile和/etc/bash.bashrc 文件是設置全局環境變量的,其余的都是用戶級的環境變量文件
3.1 區別
-
在使用層次方面說,/etc/profile,/etc/bash.bashrc 文件都是為所有用戶使用的,其他變量文件都是為單個用戶使用的
-
從文件關系來說,$HOME/.bash_login,$HOME/.bash_profile,$HOME/.profile 都是會查看引用 $HOME/.bashrc 的內容,而$HOME/.bashrc,/etc/profile 則會借鑒 /etc/bash.bashrc 的內容
-
從執行方式來說,/etc/profile ,$HOME/.bash_profile,$HOME/.bash_login,$HOME/.profile 修改后,都是重啟后才能生效的,而/etc/bash.bashrc,$HOME/.bashrc 被修改后重新打開一個執行窗口便能生效,不需要重啟
-
從讀取順序來講,/etc/profile,/etc/bash.bashrc 重啟后一定會被讀取,而$HOME/.bash_profile,$HOME/.bash_login,$HOME/.profile 只要被讀取一個就不會讀取其他的
3.2 注意
- 各個操作系統包含的環境變量配置文件可能不一樣,上述的配置文件只有部分會被使用
- 在配置全局環境變量的時候,/etc/profile會讀取/etc/profile.d文件夾中的內容,所以我們最好在/etc/profile.d文件夾中創建
xxx.sh
文件,在該文件中寫上我們想配置的全局環境變量路徑,這樣做便於維護
3.3 在配置文件中寫環境變量路徑的方法
- 環境變量的名稱為PATH,引用時使用 $PATH,每個環境變量使用 “ :” 隔開,形如:
export PATH="$HOME/XXXdir:$PATH"
export PATH="$PATH:$HOME/XXXdir"
注:本文截圖來自於: