Linux 中的 PATH 变量存储了运行命令时应在其中查找可执行文件的目录的路径。
abhishek@its-foss:~$ echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin
如您所见,PATH 由多个以冒号 (:) 分隔的目录(如 /usr/local/sbin、/usr/bin 等)组成。
如果你想从系统的任何地方运行一些可执行文件作为命令,你应该在 PATH 变量中添加它们的位置。
这在设置开发环境时很常见。例如,假设您下载并安装了 Java 和 Maven。为了使您的程序正常工作,您需要在 PATH 中指定 Maven 和 Java 二进制文件的位置。
这个快速教程是关于在 Linux 中设置 PATH。除了这些步骤之外,我还会提到在处理 PATH 时应该注意的事项。
在 Linux 中向 PATH 变量添加新目录的过程本质上是这样的:
export PATH=$PATH:your_directory
相关目录your_directory
的绝对路径在哪里。
假设您将 Maven 下载并解压缩到主目录,并且想要将其 bin 目录添加到 PATH。我们假设这个bin目录的绝对路径是/home/abhishek/maven/apache-maven-3.8.0/bin。
这是你应该做的:
导出路径=$PATH:/home/abhishek/maven/apache-maven-3.8.0/bin
export PATH=$PATH:/home/abhishek/maven/apache-maven-3.8.0/bin
这里需要注意的地方:
使用新值设置 PATH 后,请检查 PATH 是否已正确更新。
abhishek@its-foss:~$ echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/home/abhishek/maven/apache-maven-3.8.0/bin
您可能想要运行修改了 PATH 的命令或脚本。这将告诉您现在是否正确设置了 PATH。
您已将所需目录添加到 PATH 变量,但更改是暂时的。如果您退出终端、退出会话或从系统注销,PATH 将恢复并且更改将丢失。
如果您希望自己对 PATH 变量进行永久更改,则可以将其添加到主目录中的 .bashrc 文件中,假设您使用的是 Bash shell。
您可以使用文本编辑器(如 Nano或 Vim)来完成此任务。
nano ~/.bashrc
如果您希望 Linux 系统上的每个人都可以使用修改后的 PATH 变量,您可以将导出添加到 /etc/profile 文件中。当您是系统管理员并且配置了带有自定义路径的系统时,这很合适。
PATH 变量中有几个目录。当您运行可执行文件/命令时,您的系统会按照 PATH 变量中提到的相同顺序查看目录。
如果 /usr/local/sbin 在 /usr/bin 之前,则首先在 /usr/local/sbin 中搜索可执行文件。如果找到可执行文件,则搜索结束并执行该可执行文件。
这就是为什么您会找到一些示例,其中在 PATH 中的其他所有内容之前添加了附加目录:
export PATH=your_directory:$PATH
如果您认为您的附加目录应该在所有其他目录之前搜索,您应该将它添加到 $PATH 之前,否则将它添加到 $PATH 之后。