Linux 路徑環境變數

Niraj Menon 2023年1月30日
  1. Linux 中 PATH 的使用
  2. 在 Linux 中新增到 PATH 環境的方法
Linux 路徑環境變數

在 Linux 中,PATH 環境變數決定程式的位置。它是放置二進位制檔案或符號連結的目錄的檔案路徑列表。當輸入程式呼叫時,當前 shell 將在 PATH 中查詢相應的二進位制檔案。

本文將討論如何編輯 PATH 環境變數以查詢不在檔案系統上特定位置的程式,假設使用 Bash shell 命令列。

Linux 中 PATH 的使用

預設情況下,你使用的 shell 將檢視 PATH 環境變數以在 PATH 指定的目錄中定位命令。

例如,如果你輸入 cat,一個常見的 Linux 實用程式,shell 通常會在目錄中查詢,例如 /usr/bin/usr/local/bin/usr/sbin,尋找名為 cat 的程式,並執行它。

在 Linux 中新增到 PATH 環境的方法

有時,你可能將程式安裝在系統上通常不在 PATH 上的位置,例如你的主資料夾,在這種情況下你沒有根訪問許可權來安裝到/usr/ 等位置斌。你可以在 PATH 環境變數前面新增一個路徑來執行此操作。

假設你想將路徑 /home/$USER/local/bin - 其中 $USER 是一個包含你的使用者名稱的 shell 變數,並且每次啟動新的 shell 會話時都預定義 - 到環境的 PATH

在 Bash 中,你可以使用以下方法執行此操作:

export PATH=/home/$USER/local/bin:$PATH

export 命令確保更改後的 PATH 將匯出到任何子 shell 或在當前 shell 中呼叫的其他 child 命令。

使用 export 通常是最安全的選擇,除非你只需要更改當前 shell 的 PATH 但呼叫使用舊 PATH 值的子程序。請記住,你只能新增包含命令的目錄,而不是命令本身的實際路徑。

你也可以選擇設定 PATH 而不先匯出,執行命令,然後在命令完成後匯出新的 PATH,如圖:

PATH=/home/$USER/local/bin:$PATH
command-that-uses-old-PATH
export PATH

如果在指令碼中執行時需要使用諸如 $USER 之類的變數,你應該使用一個字串來分配給 PATH,如下所示:

export PATH="/home/$USER/local/bin:$PATH"

在某些情況下,在命令位置的優先順序無關緊要的情況下,例如在新增新命令時,你可能希望將新路徑附加到 PATH 而不是預先新增它。

你可以按如下方式附加到 PATH

export PATH=$PATH:/path/to/new/program