如何修改 Catalina 中的 PATH 环境变量?

Nii*_*ing 5 zsh path environment-variables macos

一些应用程序告诉我向 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
Run Code Online (Sandbox Code Playgroud)

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

/usr/local/bin
/usr/bin
/bin
/usr/sbin
/sbin
Run Code Online (Sandbox Code Playgroud)

那么哪个文件附加了额外的路径?


回复评论:

我得到了:(原谅我把用户名改成了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
Run Code Online (Sandbox Code Playgroud)

Kus*_*nda 4

正如您在自己的自我回答中所说,您不需要知道PATH变量最初填充的位置。

PATH您可以轻松地在末尾或开头添加新路径,并且zsh还可以方便地删除重复项。

您可以首先使用以下方法使PATH变量和关联的数组唯一path

typeset -U -g PATH path
Run Code Online (Sandbox Code Playgroud)

然后,变量将通过此命令保持唯一。

要添加几个路径:

path=( /new/path1 /new/path2 $path )
Run Code Online (Sandbox Code Playgroud)

要附加几个路径:

path=( $path /new/path1 /new/path2 )
Run Code Online (Sandbox Code Playgroud)

或者,

path+=( /new/path1 /new/path2 )
Run Code Online (Sandbox Code Playgroud)

变量PATH的值将相应更新。

您可能想在您的文件中执行此操作$ZDOTDIR/.zprofile,该文件由任何zsh登录 shell 自动获取。在您的文件中执行此操作$ZDOTDIR/.zshenv是不必要的,因为该文件是由任何类型zsh调用获取的(因此,如果需要的话,应该保持非常短;ZDOTDIR=$HOME/.zsh例如,我只是在那里设置)。

请注意,它PATH已经是一个环境变量,因此再次导出它没有任何意义。