如何修改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

相关内容