将目录添加到 Linux 中的路径
每次在 Linux 终端上运行命令时,基本上都是在命令 shell 运行带有给定名称的可执行程序。可执行程序(包括 ls、mkdir、touch 和 find 等简单程序)驻留在文件系统上的特殊目录中。在Linux中,容纳此类可执行程序的目录包括:
/bin/usr/local/bin
/usr/local/bin
/bin
/usr/bin
/snap/bin
/sbin
/usr/games
/usr/local/games
这些目录之一中具有可执行权限的文件可以从 Linux 终端内的任何位置执行。
那么,问题来了,Linux shell 如何知道在哪里寻找程序呢?它不会从当前目录或文件系统中的任意位置开始搜索。 shell 依赖于 ` PATH 变量。
` PATH 变量是什么?
` PATH 是一个环境变量,它告诉 shell 在哪里找到可执行文件。 ` PATH 变量中定义了各种目录。要显示` PATH中的目录,请运行以下命令:
要找到命令可执行文件所在的目录,请使用 which 命令,如下所示
例如,要查找 pwd 命令的可执行文件所在的位置,请运行以下命令:
从输出中,我们可以看到可执行文件位于 /bin 目录中。对于touch命令,可执行文件位于/usr/bin目录中。
如何将目录添加到` PATH
假设您有一个名为 greetings.sh 的简单 shell 脚本,它在 /home/james/files 目录中打印“Hello World”。默认情况下,目录尚未在` PATH变量中定义。要从任何位置或目录运行脚本,您需要指定脚本的绝对路径。现在,这可能既麻烦又耗时。
要全局运行脚本(无论您在文件系统中的位置如何)而不指定脚本的完整路径,您需要使用以下语法将包含脚本的目录添加到 ` PATH 变量。
在这种情况下,命令将是:
您现在应该可以从 Linux 系统中的任何目录调用或运行该脚本,而无需指定脚本的绝对路径,如图所示。
如何将目录永久添加到 ` PATH 变量
我们刚刚定义到 ` PATH 的路径只是临时的,当您关闭终端或重新启动系统时不会持续存在。它仅在当前 shell 会话中有效。如果您退出并启动另一个会话,您将遇到如图所示的错误。
要保留更改,请在 ~.bashrc 配置文件中定义 ` PATH 变量。为此,请打开配置文件。
然后添加如图所示的行。
之后,保存并退出。要加载新的更改,请调用 source 命令,如下所示:
要验证目录是否已添加到 ` PATH,请执行所示命令。
包起来
好了,伙计们!我们已成功将该目录添加到 Linux 上的 PATH 中。正如您所看到的,它非常方便和简单,特别是如果您将定期从 shell 调用脚本或应用程序。相同的命令适用于任何 Linux 风格。