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