$ PATH是什么意思?

我正在尝试安装一些东西,其中有一个步骤:

“把它放在$PATH

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

我搜索了这个网站和谷歌,但每个人都认为这是理所当然的!

在终端中运行:

 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 ,方法是$PATH下行添加到~/.profile文件中(默认情况下不可见,在文件管理器中按Ctrl + H使其可见):

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

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

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

$PATH是与文件位置相关的 环境变量 。

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

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

假设在/home/user/foo1/foo2/foobar01.sh中存在一个可执行文件foobar01.sh ,您希望定期执行该文件。 输入整个“路径”将非常耗时。 所以我们将目录添加到$PATH变量中,我们可以直接执行foobar.sh而不指定路径。

您可以通过键入以下命令将其添加到$PATH

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

我假设您来自Windows背景(如果不是真的,请道歉)。 在外行人的术语中,路径(或搜索路径)是将在命令行上键入的任何内容的目录列表。 如果输入像ls这样的内置命令,它将查找指定的目录列表。 您可以通过键入echo $ PATH来查找路径。 以下是Windows和* nix之间的一个区别:默认情况下,Windows始终在当前目录中查找可执行文件。 例如,如果在c:\ myscripts中有一个名为uptime.bat的文件,并且cd c:\ myscripts并输入正常运行时间,则它将运行。 但是,在* nix中,将查询路径并找到可执行文件(如果可用)。

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

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

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

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

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

HTH