如何設定 UNIX/Linux/macOS 環境變數

    閱讀 5:39·字數 1699·發佈 
    Youtube 頻道
    訂閱 133

    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 區別對待,比如,Namename將被判斷為不同的變數。

    下面的命令設定名稱為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 程式,但他並不是唯一的,你可以選擇shdash等作為預設。

    使用檔案 ~/.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 提供了更好的編輯器,你可以在啟動臺搜尋並啟動終端機,然後使用nanovim命令開啟相關檔案,並新增修改一些export命令。

    nano ~/.zshrc
    vim ~/.zshrc

    macOS Catalina 中的預設 Shell 程式為 zsh

    在 macOS Catalina 以及之後的版本中,預設的 Shell 程式從bash變更為了zsh,因此,你可以編輯檔案~/.zshrc而不是~/.bash_profile~/.bashrc