$PATH 是什么意思?

$PATH 是什么意思?

我正在尝试安装某些东西,其中有以下步骤:

“将其放在你的$PATH

这是什么意思?那是什么?

我已经在本网站和 Google 上搜索过,但每个人都认为这是理所当然的!

答案1

在终端中运行:

echo $PATH

或者

printf "%s\n" "$PATH"

您看到的是一个目录列表,如下所示:

/home/jacob/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games

如果将可执行文件放在其中一个目录中,则无需设置可执行文件/脚本的路径,但可以通过其名称作为命令来运行它。

可执行文件$PATH不应该有语言扩展按照惯例(尽管它们可以工作)

编辑 $PATH 变量

$PATH您可以通过在文件中添加以下行来(永久)添加目录~/.profile(默认情况下不可见,在文件管理器中按Ctrl+H使其可见):

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

有关环境变量的更多有用信息

(例如$PATH)可以找到这里(感谢@Letizia 的建议)

答案2

$PATH环境变量那是文件位置相关

当输入要运行的命令时,系统会按照指定的PATH顺序在指定的目录中查找该命令。

echo $PATH您可以通过在终端中输入来查看指定的目录。

假设有一个可执行文件foobar01.sh/home/user/foo1/foo2/foobar01.sh您希望定期执行它。输入整个“路径”会很耗时。因此,我们将目录添加到$PATH变量中,这样我们就可以foobar.sh直接执行,甚至无需指定路径。

$PATH您可以通过输入以下命令来添加它:

export PATH=$PATH:/home/user/foo1/foo2

答案3

我假设您有使用 Windows 的经验(如果不是,请见谅)。通俗地说,路径(或搜索路径)是您在命令行中输入的任何内容都会被搜索的目录列表。如果您输入内置命令(如 ls),它将查找指定的目录列表。您可以通过输入 echo $PATH 来查找路径。Windows 和 *nix 之间的一个区别是:默认情况下,Windows 始终在当前目录中查找可执行文件。例如,如果您在 c:\myscripts 中有一个名为 uptime.bat 的文件,并且您 cd c:\myscripts 并输入 uptime,它将运行。但是,在 *nix 中,将查询路径并找到可执行文件(如果可用)。

如果您将脚本保存在名为 /home/teresa/scripts 的目录中,则要执行这些脚本,您必须指定该目录的完整路径。例如:/hone/teresa/checkHost。一种变体是 cd /home/teresa,然后输入 ./checkHost(请注意 ./,这意味着您明确要求文件从当前目录运行。

为了避免这种情况,您只需输入

导出 PATH=$PATH:/home/teresa/scripts

这意味着,除了现在已存在的路径之外,还要在 /hone/teresa/scripts 中搜索。但是,这样做的问题是,一旦您注销,此设置就会消失。因此,您应该编辑隐藏文件 ~/.bashrc,在那里找到 PATH 行,并相应地附加它。我假设您使用 bash。对于其他 shell,语法和文件会有所不同。

作为新用户,在搜索路径中添加 . 非常诱人,这基本上意味着也在当前目录中搜索。但是,由于其他地方讨论的原因,这并不被认为是一种好的做法。

高血压

相关内容