如何在 macOS 中设置 PATH 变量

已发表: 2021-09-08

通过终端执行程序是在 Mac 上执行操作的一种快速有效的方式。 它提供扩展功能和对程序功能和输出的精细控制,否则其 GUI 等效项将缺乏这些功能。

set PATH environment variable on macOS

但是,通过 CLI 启动程序有时也会带来一些问题。 其中之一是当您尝试执行某些程序/命令时,shell 向您抛出的command not found错误。

尽管您可以通过在命令前加上程序的绝对路径来暂时克服这个问题,但如果您想多次使用该程序,这不是一个非常实用的方法。

解决该问题的另一种(读取效率)解决方案是为此程序设置 PATH 变量。 跟随我们描述 PATH 变量并列出如何在 macOS 中设置 PATH 变量的步骤。

目录

什么是 PATH 环境变量?

PATH 或 PATH 变量是所有类 Unix 和类 Unix 操作系统上的一种环境变量。 环境变量构成操作系统上各种程序或进程的名称-值对,例如系统程序或进程的路径、位置以及其他系统程序所需的其他基本信息。

谈到 PATH,该变量包含一个列表,其中包含 shell 需要搜索以通过终端命令执行您请求的程序的所有目录(用于添加到 PATH 的各种程序)。

为什么需要设置 PATH 环境变量?

在 macOS 上,当您在终端中运行命令时,它会在 PATH 环境变量中的该命令中搜索所请求程序的路径。 如果找到路径地址,则成功执行命令并返回输出。 如果没有,您将收到命令未找到错误。

就像我们最初提到的那样,在命令中指定安装/存储程序的目录的绝对路径或完整路径是克服此错误的一种方法。 但不幸的是,由于一遍又一遍地这样做会占用您大量的时间和精力,因此这不是一种非常有效的方法,并且在您想要重复运行命令时无法使用。

另一方面,如果您在 PATH 变量中设置该程序的路径,您可以轻松地在系统上的任何目录中使用它,而无需指定其绝对路径。

基本上,这意味着不是像这样运行您的命令:

/path/to/program/script.sh

你可以简单地使用:

script.sh

在文件系统上的任何目录中。

如何在 macOS 中设置 PATH 变量

在 macOS 中设置 PATH 变量需要使用 CLI - 与 Windows 不同,它允许您使用 GUI 和 CLI 来完成。 另外,根据您的要求,有两种方法可以在 Mac 上设置 PATH:临时永久

当您临时设置 PATH 时,您的路径更改仅适用于当前会话 - 注销会话会将 PATH 恢复到之前的状态。 相反,永久设置 PATH 将永久保留您的更改并将它们应用到您的所有会话 - 即使在您启动新的终端会话或重新启动 Mac 之后也是如此。

有了它,请按照以下部分中的步骤在 Mac 上设置 PATH。

也在 TechPP 上

识别当前的 PATH 条目

在将程序的路径添加到 Mac 上的 PATH 变量之前,您应该首先确定系统 PATH 中的当前条目,以验证是否没有相同的条目。

要查看当前的 PATH 设置,请打开终端应用程序并运行:

echo $PATH

PATh environment variable output

如果您正在为新程序/脚本设置 PATH,则可以跳过此步骤。

临时设置 PATH 变量

一旦您确定了当前的 PATH 条目,您现在可以为任何程序设置 PATH。 如果您只想在当前会话中通过终端使用/执行程序,可以使用以下命令临时设置其路径:

export PATH=$PATH:absolute/path/to/program/

例如,如果你想为 Python 3.6 设置 PATH,你可以运行:

export PATH=$PATH:/Library/Frameworks/Python.framework/Versions/3.6/bin

这样做将为程序设置一个临时变量,您可以在当前终端会话或活动终端窗口的命令中使用该变量。

永久设置 PATH 变量

如果您想定期使用某个程序,则必须永久设置其路径。 为此,您需要访问 shell 的配置或配置文件并将程序的路径添加到其中。

根据您在 Mac 上运行的 macOS 版本,这可以通过bash shell 或zsh (z shell) 来完成。

  • 对于旧 macOS 版本(Catalina 之前): bash.bashrc.bash_profile
  • 对于 macOS Catalina 及更高版本: zsh.zshrc 或 .zsh_profile

现在您知道需要在其中添加程序/脚本路径的文件,打开终端并根据您的 shell 输入命令:

对于 bash

nano ~/.bash_profile

或者

nano ~/.bashrc

对于 zsh:

nano ~/.zsh_profile

或者

nano ~/.zshrc

如果您的系统中缺少配置文件或配置文件,此命令将创建一个新的; 如果它存在,它会打开相同的,然后你可以编辑它。

现在,您所要做的就是在文件系统上找到程序或脚本的完整路径。 为此,请打开 Finder 并导航到存储或安装程序或脚本的目录。 在这里,右键单击程序/脚本,按Option键,然后选择Copy xyz as Pathname ,其中xyz是程序名称。

也在 TechPP 上

返回终端并在 nano 或任何其他文本编辑器中为您的 shell 打开适当的配置文件或配置文件。 在文件中,输入以下行:

export PATH=$PATH:/path/to/directory

…您需要将path/to/directory替换为您在上一步中复制的确切路径。

或者,如果文件已经包含路径条目,请在该行后面附加一个冒号 ( : ),然后是:

/path/to/directory

点击Control + O将您的更改写入文件。 当提示确认文件名时,点击Return以继续使用默认值。 按Control + X退出编辑器。

现在,通过打开终端窗口并运行来验证是否已添加路径:

echo $PATH

最后,关闭终端窗口并重新打开它以开始一个新会话。 或者,您可以运行以下命令立即应用更改:

source ~/.bashrc

或者

source ~/.bash_profile

或者

source ~/.zshrc

或者

source ~/.zsh_profile

完成后,您应该能够从文件系统中的任何目录运行程序或脚本。

添加到 PATH Mac:通过终端从任何地方访问程序

将 PATH 环境变量设置为使用您要使用的程序的路径后,您现在可以通过终端从文件系统中的任何位置执行/访问它。 如果您使用 Python 或 shell 脚本来自动化您的工作流程,那么为这些脚本设置 PATH 可以简化您的工作,因为您现在可以在任何目录中访问它们,而无需指定它们的绝对路径。

关于在 macOS 上设置 PATH 的常见问题解答

1. 如何在 Catalina Mac 中设置环境变量?

如果您运行的是 macOS Catalina(或更高版本),设置环境变量就像修改 shell 配置或配置文件以合并您想要在任何地方访问的程序/脚本的路径一样简单。 由于 macOS 使用 zsh 作为 Catalina(及更高版本)版本的默认 shell,您只需编辑.zshrc 或 .zsh_profile文件并添加程序或脚本的路径。 请按照帖子前面的步骤了解执行此操作的步骤和不同方法。

2. 如何在 Mac 上永久设置 PATH?

在 Mac 上永久设置 PATH 意味着您的 PATH 环境变量更改不仅限于您当前的 shell 会话,这与临时变量设置不同。 因此,即使您开始新会话或重新启动 Mac,系统的 shell 也可以继续访问它。 要在 Mac 上永久设置 PATH,您只需打开 bash 文件( .zshrc 或 .zsh_profile 或 zsh 文件( .zshrc 或 .zsh_profile 并将程序或脚本的 PATH 添加到其中。 上述指南中列出的操作步骤。

3. 如何在 Mac 上找到 PATH 变量?

要在 Mac 上查找 PATH 变量,请打开终端窗口并运行echo $PATH 。 之后,shell 将返回当前在 Mac 上的 PATH 环境变量下列出的所有目录的列表。