Linux環境變量


1. 環境變量的種類

  • 全局環境變量
  • 局部環境變量

1.1 全局環境變量

  • 全局環境變量對於所有的shell都適用(父shell與子shell)

  • 全局環境變量可以使用命令envprintenv顯示

    • 顯示個別環境變量的值使用printenv命令,使用env命令會報錯
      image-20211223202416786

1.2 局部環境變量

  • Linux中沒有專門查看局部環境變量的命令,只有使用set命令才能查看包括局部環境變量的所有環境變量

2. 設置自定義環境變量

2.1 設置局部用戶自身定義變量

  • 局部環境變量小寫,系統環境變量大寫
  • 創建變量, 使用 $變量名 就能夠引用環境變量

image-20211223203630451

  • 當創建的變量有空格的時候,創建變量時應該使用單引號來界定字符串的首和尾,沒有單引號的話,bash shell會以為空格后下一個詞是另一個要執行的命令
    image-20211223203950280
  • 用戶自定義設置的局部環境變量只能在當前shell下使用,在子shell與父shell中都不能使用

2.2 設置全局環境變量

  • 設置全局環境變量的步驟只比設置局部環境變量多出了一步
  • 創建局部變量后可以使用 export 變量名 來將局部變量轉化為全局環境變量
    image-20211223205545608
  • 刪除全局環境變量使用 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"

注:本文截圖來自於:

image-20211223222825885


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM