Zsh

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

  • April 13, 2021

一些應用程序告訴我向 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

正如您在自己的自我回答中所說,您不需要知道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值將相應更新。

您可能希望在您的$ZDOTDIR/.zprofile文件中執行此操作,該文件由任何zsh登錄 shell 自動獲取。在您的$ZDOTDIR/.zshenv文件中執行此操作將是不必要的,因為該文件來自任何類型zsh呼叫(因此應該保持非常短,如果需要的話;ZDOTDIR=$HOME/.zsh例如,我只是在那裡設置)。

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

引用自:https://unix.stackexchange.com/questions/580418