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

然而,通过 CLI 启动程序有时也会带来一些问题。其中之一就是未找到命令当您尝试执行某些程序/命令时 shell 向您抛出的错误。
尽管您可以通过在命令前添加程序的绝对路径来暂时克服此问题,但如果您想多次使用该程序,这不是一个非常实用的方法。
该问题的另一种(读取效率)解决方案是为此程序设置 PATH 变量。请跟随我们描述 PATH 变量并列出如何在 macOS 中设置 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 不同,Windows 允许您使用 GUI 和 CLI 来执行此操作。另外,根据您的要求,有两种方法可以在 Mac 上设置 PATH:暂时的和永恒的。
当您临时设置 PATH 时,您的路径更改仅适用于当前会话 — 注销会话会将 PATH 恢复到之前的状态。相反,永久设置 PATH 将永久保留您的更改并将其应用到您的所有会话 - 即使在您启动新的终端会话或重新启动 Mac 之后也是如此。
完成此操作后,请按照以下部分中的步骤在 Mac 上设置 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 版本,这可以通过巴什外壳或桀骜(z 外壳)。
- 对于较旧的 macOS 版本(Catalina 之前): 巴什(.bashrc或者.bash_配置文件)
- 对于 macOS Catalina 及更高版本: 桀骜(.zshrc或者.zsh_配置文件)
现在您知道需要在其中添加程序/脚本路径的文件,打开终端并输入基于您的 shell 的命令:
对于bash
nano ~/.bash_profile
或者
nano ~/.bashrc
对于 zsh:
nano ~/.zsh_profile
或者
nano ~/.zshrc
如果您的系统中缺少配置文件或配置文件,此命令将创建一个新文件;如果存在,它将打开相同的文件,然后您可以对其进行编辑。
现在,您所要做的就是在文件系统上找到程序或脚本的完整路径。为此,请打开 Finder 并导航到存储或安装程序或脚本的目录。在这里,右键单击程序/脚本,然后按选项键,然后选择复制 xyz 作为路径名, 在哪里XYZ是一个程序名称。
返回终端并在 nano 或任何其他环境中打开适用于您的 shell 的配置文件或配置文件。在文件中,输入以下行:
export PATH=$PATH:/path/to/directory
……需要更换的地方路径/到/目录使用您在上一步中复制的确切路径。
或者,如果文件已包含路径条目,请在该行后附加冒号 (:) 其次是:
/path/to/directory
打控制+O将您的更改写入文件。当提示确认文件名时,点击返回继续使用默认值。按控制+X退出编辑器。
现在,通过打开终端窗口并运行以下命令来验证路径是否已添加:
echo $PATH
最后,关闭终端窗口并重新打开它以启动新会话。或者,您可以运行以下命令来立即应用更改:
source ~/.bashrc
或者
source ~/.bash_profile
或者
source ~/.zshrc
或者
source ~/.zsh_profile
完成后,您应该能够从文件系统中的任何目录运行程序或脚本。
添加到 PATH Mac:通过终端从任何地方访问程序
将 PATH 环境变量设置为使用要使用的程序的路径后,您现在可以通过终端从文件系统中的任何位置执行/访问它。如果您使用Python或外壳脚本为了自动化您的工作流程,为这些脚本设置 PATH 可以简化您的生活,因为您现在可以在任何目录中访问它们,而无需指定它们的绝对路径。
有关在 macOS 上设置 PATH 的常见问题解答
1. 如何在 Catalina Mac 中设置环境变量?
如果您运行的是 macOS Catalina(或更高版本),设置环境变量就像修改 shell 配置或配置文件一样简单,以合并您想要在任何地方访问的程序/脚本的路径。由于 macOS 使用 zsh 作为 Catalina(及更高版本)版本上的默认 shell,因此您只需编辑.zshrc或者.zsh_配置文件文件并添加程序或脚本的路径。按照本文前面的步骤了解执行此操作的步骤和不同方法。
2. 如何在Mac上永久设置PATH?
在 Mac 上永久设置 PATH 意味着您的 PATH 环境变量更改不限于当前的 shell 会话,这与临时变量设置不同。因此,即使您开始新会话或重新启动 Mac,系统的 shell 也可以继续访问它。要在 Mac 上永久设置 PATH,您所要做的就是打开 bash 文件(.bashrc或者.bash_配置文件)或 zsh 文件(.zshrc或者.zsh_配置文件)并将程序或脚本的 PATH 添加到其中。上面的指南列出了执行此操作的步骤。
3. 如何在Mac上找到PATH变量?
要在 Mac 上查找 PATH 变量,请打开终端窗口并运行回显$PATH。之后,shell 将返回 Mac 上 PATH 环境变量下当前列出的所有目录的列表。





