如何設定 UNIX/Linux/macOS 環境變數
訂閱 480
UNIX/Linux/macOS 環境變數
UNIX,Linux,以及從 UNIX 衍生的 macOS 在設定環境變數方面的操作是類似的,需要使用export命令,或將該命令寫入相關檔案。
使用 export 命令設定 UNIX/Linux 環境變數
在 UNIX 和 Linux 中,export命令可用來設定環境變數,其格式如下。
export <name>=<value>- name 參數
name參數為環境變數的名稱。- value 參數
value參數為環境變數的值,該參數可通過$傳回其他環境變數的值,比如,$NAME和${NAME}均傳回環境變數NAME的值。另外,你還可以使用\進行跳脫,比如,\$將跳脫為$而不是傳回某個環境變數的值。
UNIX/Linux 中的環境變數名稱區分大小寫
在書寫變數名稱時,請註意拼字問題,大小寫會被 UNIX/Linux 區別對待,比如,Name和name將被判斷為不同的變數。
下面的命令設定名稱為LS的環境變數,其值將為learnscript.net。
export LS=learnscript.net下面的命令設定名稱為LSPATH的環境變數,其值將為環境變數LS的值與一段網址的組合,即learnscript.net/welcome/play/。
export LSPATH=${LS}/welcome/play/直接在 Shell 中使用 export 命令設定的環境變數無法一直持續
如果直接在 Shell 中執行export命令來設定變數,那麽這些變更無法一直持續,比如,在重新啟動作業系統後。你需要將設定變數的export命令寫入特定的檔案,以取得永久化效果。
使用檔案 /etc/profile 設定 UNIX/Linux 環境變數
將export命令新增至檔案/etc/profile,可以設定對所有使用者有效的環境變數,只需要通過vi命令啟動編輯器並開啟檔案/etc/profile,然後追加格式為export <name>=<value>的命令即可。
sudo vi /etc/profile使用 UNIX/Linux sudo 命令升階權限
你可以使用sudo命令來執行vi,以避免沒有足夠的權限寫入或讀取/etc/profile。
如果習慣了 Windows 中的一些文字編輯器,那麽vi開啟的編輯器可能會讓你無所適從,他的操作方式有點「特別」,「怎麽會這個樣子的?」。
當然,相對於編輯/etc/profile,一些系統推薦通過新增路徑為/etc/profile.d/<filename>.sh的檔案,來實作相同的效果,其中filename應取代為具體的檔案名。
無論是/etc/profile還是/etc/profile.d/<filename>.sh,你只需要選擇其中之一,即可為所有使用者設定環境變數。
sudo vi /etc/profile.d/<filename>.sh指定執行 UNIX/Linux sh 檔案的 Shell 程式
在sh檔案的開始一行,你可以使用#!來指定執行sh檔案的 Shell 程式。比如,#!/bin/bash指定使用bash來執行該檔案。
UNIX/Linux 中預設的 Shell 程式
大多數的 UNIX/Linux 系統預設bash為 Shell 程式,但他並不是唯一的,你可以選擇sh,dash等作為預設。
使用檔案 ~/.profile 設定 UNIX/Linux 環境變數
將export命令新增至檔案~/.profile,可以為目前使用者設定環境變數,只需要通過vi啟動編輯器,然後追加格式為export <name>=<value>的命令即可。
vi ~/.profile到底應該編輯哪個檔案來為目前使用者設定 UNIX/Linux 環境變數?
事實上,對於應該編輯哪個檔案,並沒有準確的答案,因為不同的 Shell 程式會有自己的邏輯。如果修改~/.profile沒效果,你可以嘗試編輯~/.bash_profile,~/.bashrc,或具體 Shell 程式所指明的檔案。
使用 UNIX/Linux su 命令切換使用者時檔案 ~/.profile 可能不被執行
如果你嘗試使用su命令切換到某個使用者,那麽該使用者對應的~/.profile檔案可能不會執行。
使用 source 命令執行檔案
在采用上述方法為檔案新增export命令後,環境變數可能不會發生變化,因為被修改的檔案沒有被執行。你可以使用source命令立即執行這些檔案,以觀察環境變數發生的變化。
source <filename>- filename 參數
filename參數為需要執行的檔案。
下面的命令將執行檔案/etc/profile。
source /etc/profile設定 macOS 環境變數
macOS 提供了更好的編輯器,你可以在啟動臺搜尋並啟動終端機,然後使用nano或vim命令開啟相關檔案,並新增修改一些export命令。
nano ~/.zshrcvim ~/.zshrcmacOS Catalina 中的預設 Shell 程式為 zsh
在 macOS Catalina 以及之後的版本中,預設的 Shell 程式從bash變更為了zsh,因此,你可以編輯檔案~/.zshrc而不是~/.bash_profile或~/.bashrc。