如何在 macOS 中设置 PATH 变量
已发表: 2021-09-08通过终端执行程序是在 Mac 上执行操作的一种快速有效的方式。 它提供扩展功能和对程序功能和输出的精细控制,否则其 GUI 等效项将缺乏这些功能。
但是,通过 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。
识别当前的 PATH 条目
在将程序的路径添加到 Mac 上的 PATH 变量之前,您应该首先确定系统 PATH 中的当前条目,以验证是否没有相同的条目。
要查看当前的 PATH 设置,请打开终端应用程序并运行:
echo $PATH
如果您正在为新程序/脚本设置 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是程序名称。
返回终端并在 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 环境变量下列出的所有目录的列表。