如何在 Linux 中设置 $PATH 变量

$PATH 变量是 Linux 和其他类 Unix 操作系统上的关键组件。 它指定了一个包含系统上各种可执行文件的目录列表,并告诉外壳程序在哪里查找这些可执行文件。

在全新的 Linux 安装中,$PATH 中包含的目录可确保您运行的大多数程序都能正常运行。 但是,有时您可能希望在系统上快速运行自定义脚本或程序。

在这种情况下,您需要在运行这些程序之前适当地设置 $PATH 变量。

Linux 中的 $PATH 是什么?

如上所述,$PATH 是 Linux 中的一个环境变量,它包含一个以冒号分隔的目录列表,Linux shell 在接收到命令或 执行调用 从一个程序。

通常,$PATH 变量包括 /bin, /usr/bin/usr/local/bin 目录,超级用户又获得了两个条目,即 /sbin/usr/sbin. 但是,您可以向 $PATH 变量添加新条目,以便从终端方便地启动脚本和程序,而不管当前工作目录如何。

为什么要设置 $PATH?

总的来说,您将在 Linux 系统上运行的大多数程序都可以完美运行,并且您的 shell 在执行时不会出现任何错误。 例如,当您运行 ls 命令时,shell 会无错误地运行它,而无需您指定命令的完整路径。

但是,当您必须运行自定义脚本时,您不能像使用 ls 之前的命令。 相反,您必须做的是导航到脚本的目录(通过终端)并从那里运行命令,或者,如果您希望能够从系统上的任何位置运行命令,请指定脚本的绝对路径帮助 shell 定位它的命令。

虽然这两种方法都运作良好,但它们的效率并不高,并且很快就会使整个过程成为乏味的例行公事。 从非标准目录运行程序的另一种(读取效率和有效)方法是将它们的源目录添加到 shell 的 $PATH 中,以便它知道在哪里可以找到脚本,因此可以快速执行它们。

如何在 Linux 中设置 $PATH 变量

根据您想要实现的目标——无论是仅运行一次脚本的临时设置还是计划定期使用该脚本——有不同的方法可以将目录添加到 $PATH。

1. 临时设置 $PATH 变量

如果您只想在当前(活动)会话中运行脚本或程序,您可以选择设置一个临时 $PATH 变量。 当您这样做时,您将能够从系统上的任何位置使用命令执行该程序,而不必在命令中包含其完整路径,但只能在当前会话中包含。

要临时设置 $PATH 变量,请打开终端并使用以下语法将目录添加到变量中:

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

为了 example:

export PATH=$PATH:/home/smithy/scripts/

请注意,使用此配置,您只能在活动会话中运行该程序。 当您临时设置 $PATH 变量时,系统会在您重新启动计算机后将其重置为默认设置。

2. 设置一个永久的 $PATH 变量

如果您的系统上有一个您可能经常使用的程序,您必须为它永久设置 $PATH 变量。 这将确保您的 shell 即使在重新启动后也能记住它的目录。

但是,与临时解决方案不同,永久设置 $PATH 涉及一些额外的步骤:识别您正在使用的 shell,编辑相应的配置文件,并在那里设置 $PATH 变量。

要识别系统上的 shell,请在终端中运行以下命令:

echo $0

您应该会看到活动 shell 的名称作为输出。 在大多数情况下,这将是 Bash shell,除非您已将其更改为 Zsh、Ksh 或其他一些 Linux shell。

现在,根据您使用的外壳,您必须编辑其配置文件。 以下是您需要根据您的 shell 编辑的文件:

外壳名称配置文件
bash~/.bashrc
克什~/.kshrc
zsh~/.zshrc
csh~/.cshrc

对于其他一些 shell,请查看其文档以找出其配置文件名。

确定需要编辑的文件后,请按照以下步骤设置 $PATH 变量。 在本指南中,我们将演示如何在 Bash shell 中设置 $PATH 变量。

  1. 打开终端,输入以下命令打开 .bashrc 文件。 您可以使用您选择的任何 Linux 文本编辑器。
    nano ~/.bashrc
  2. 使用以下语法设置 $PATH 变量。
    export PATH=$PATH:/path/to/directory/
  3. Save 文件并使用更新当前 shell 环境 来源.
    source ~/.bashrc
  4. 键入以下命令以检查目录是否已添加。
    echo $PATH

如果您正确输入了目录路径,它将反映在系统的 $PATH 中,并且您应该能够从系统上的任何目录运行文件夹内的所有脚本。

此外,Linux 还允许您在系统范围的配置中永久设置 $PATH 变量,以便系统上的每个用户都可以访问和执行指定目录中存在的自定义脚本。

要全局设置 $PATH,您需要使用添加临时和永久设置时使用的相同命令添加目录,但可以在 /etc/环境 或者 /etc/profile 文件。

打开这些文件中的任何一个并附加目录的路径:

nano /etc/environment
nano /etc/profile

在 Linux 中成功设置 $PATH

通过上述步骤,您可以设置系统的 $PATH 以在未指定的目录中查找脚本。

在大多数情况下,我们建议您在每用户配置中永久设置系统上的 $PATH 变量,因为这是两种方法中最有效的方法。

另外,请记住,除非您的系统上存在您想要全局访问的特定程序,否则您不需要在系统范围的配置中设置 $PATH 变量。 这 定位寻找 如果您在查找要添加到 $PATH 变量的源目录时遇到问题,Linux 中的命令是救命稻草。