如何在Linux中将目录添加到PATH

在命令行上键入命令时,基本上是在告诉Shell运行具有给定名称的可执行文件。 在Linux中,这些可执行程序例如 lsfindfile 和其他文件,通常位于系统上的几个不同目录中。 可以在任何位置运行在这些目录中存储的具有可执行权限的任何文件。 保存可执行程序的最常见目录是 /bin/sbin/usr/sbin/usr/local/bin/usr/local/sbin

但是,shell如何知道要搜索可执行程序的目录? Shell是否搜索整个文件系统?

答案很简单。 当您键入命令时,shell将搜索用户指定的所有目录 $PATH 该名称的可执行文件的变量。

本文介绍如何将目录添加到您的 $PATH 在Linux系统中。

什么是 $PATH 在Linux中

$PATH 环境变量是用冒号分隔的目录列表,告诉外壳程序搜索可执行文件的目录。

检查您的目录 $PATH,您可以使用 printenv 要么 echo 命令:

echo $PATH

输出将如下所示:

/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin

如果在两个不同的目录中有两个共享相同名称的可执行文件,则外壳程序将运行位于第一个目录中的目录中的文件。 $PATH

将目录添加到您的 $PATH

在某些情况下,您可能想将其他目录添加到 $PATH 变量。 例如,某些程序可能安装在不同的位置,或者您可能想要为您的个人便笺建立专用的目录,但是能够在不指定可执行文件绝对路径的情况下运行它们。 为此,您只需要将目录添加到您的 $PATH

假设您有一个名为 bin 位于您的主目录中,您在其中保留了外壳程序脚本。 要将目录添加到您的 $PATH 输入:

export PATH="$HOME/bin:$PATH"

export 该命令会将修改后的变量导出到Shell子进程环境。

现在,您可以通过键入可执行脚本名称来运行脚本,而无需指定文件的完整路径。

但是,此更改只是临时的,仅在当前的Shell会话中有效。

要使更改永久生效,您需要定义 $PATH Shell配置文件中的变量。 在大多数Linux发行版中,当您开始新的会话时,将从以下文件中读取环境变量:

  • 特定于全局Shell的配置文件,例如 /etc/environment/etc/profile。 如果要将新目录添加到所有系统用户,请使用此文件 $PATH

  • 每用户外壳程序特定的配置文件。 例如,如果您使用的是Bash,则可以设置 $PATH 在变量 ~/.bashrc 文件。 如果使用的是Zsh,则文件名为 ~/.zshrc

在此示例中,我们将在 ~/.bashrc 文件。 使用文本编辑器打开文件,并在文件末尾添加以下行:

nano ~/.bashrc

〜/ .bashrc

export PATH="$HOME/bin:$PATH"

保存文件并加载新文件 $PATH 使用以下命令进入当前的shell会话 source 命令:

source ~/.bashrc

要确认目录已成功添加,请打印您的值 $PATH 通过键入:

echo $PATH

结论#

向您的用户或全局添加新目录 $PATH 变量非常简单。 这使您可以执行存储在非标准位置的命令和脚本,而无需键入可执行文件的完整路径。

相同的说明适用于任何Linux发行版,包括Ubuntu,CentOS,RHEL,Debian和Linux Mint。

如有任何疑问,请随时发表评论。

终奌站

Sidebar