如何修改Catalina中的PATH環境變數?

如何修改Catalina中的PATH環境變數?

某些應用程式告訴我要為 PATH 環境變數添加一些內容,我知道一種方法是在 處建立一個文件~/.zshrc,但我想知道變數PATH=...儲存的文件在哪裡?

當我輸入時echo $PATH我得到:

/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/share/dotnet:~/.dotnet/tools:/Library/Apple/usr/bin:/Library/Frameworks/Mono.framework/Versions/Current/Commands:/Applications/Xamarin Workbooks.app/Contents/SharedSupport/path-bin

從文件中/etc/paths我得到:

/usr/local/bin
/usr/bin
/bin
/usr/sbin
/sbin

那麼哪個文件附加了附加路徑呢?


回覆評論:

我得到:(請原諒我將用戶名更改為alice

grep: /Users/alice/.profile: No such file or directory
grep: /etc/environment: No such file or directory
grep: /etc/zsh/zprofile: No such file or directory
grep: /Users/alice/.zshrc: No such file or directory
grep: /Users/alice/.profile: No such file or directory

答案1

正如你所說自己的自我回答,您不需要知道PATH變數最初填滿的位置。

PATH您可以輕鬆地在末尾或開頭新增路徑,並且zsh還可以輕鬆刪除重複項。

您可以透過使用首先使PATH變數和關聯的數組唯一path

typeset -U -g PATH path

然後變數將停留由於該命令而獨一無二。

要新增幾個路徑:

path=( /new/path1 /new/path2 $path )

要附加幾個路徑:

path=( $path /new/path1 /new/path2 )

或者,

path+=( /new/path1 /new/path2 )

變數PATH的值將會相應更新。

您可能想要在您的檔案中執行此操作,該檔案由任何登入 shell$ZDOTDIR/.zprofile自動取得。zsh在您的文件中執行此操作$ZDOTDIR/.zshenv是不必要的,因為該文件的來源是任何類型調用zsh(因此,如果需要的話,應該保持非常簡短;ZDOTDIR=$HOME/.zsh例如,我只是在那裡設置)。

請注意,它PATH已經是一個環境變量,因此再次導出它沒有任何意義。

答案2

該文件/etc/zprofile用於/usr/libexec/path_helper設定預設值PATH,我們沒有它的原始碼。

下面展示如何根據使用者的情況進行修改PATH

建立/編輯~/.zprofile並新增以下內容:

# append to PATH
export PATH="$PATH:.../to/target/bin"

# prepend to PATH
export PATH=".../to/target/bin:$PATH"

# remove duplicate in PATH
typeset -U PATH

答案3

以下步驟向您展示如何進行系統方面的修改PATH

  1. 使用命名約定建立一個檔案:priority-appname(例如'20200418-vscode',我只是使用日期來使優先權唯一)然後將要新增到的路徑儲存PATH在其中。

  2. 將該文件移至/etc/paths.d/,完成。

注意事項1:請記住建立一個新的終端會話以查看echo $PATH.

注意2:僅此方法追加你的路徑PATH

相關內容