$ PATH是什么意思?


28

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

“把它放在你的$PATH

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

我在这个网站和Google上都进行了搜索,但每个人都将其视为理所当然!



2
@muru不,我读过这个问题,与我的没有任何共同之处。同样,这个问题根本没有帮助。
亚当

4
@muru我认为问题不在于如何添加(否则我可能会误解“将其放在您的$ PATH上”的含义)。
2014年

1
@JacobVlijm你说的没错。
亚当

2
我懂了。好的。有关; askubuntu.com/q/141718/158442
muru

Answers:


24

在终端中运行:

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的建议)


我们可以建议如何在.bashrc PATH = $ PATH:/ path / you / want或.profile中进行更改,您怎么看?
Lety 2014年

这对初学者来说是一个有用的链接
Lety 2014年

@Letizia我希望第一个。您是否删除了答案?我们几乎在同一时间。我们可以做一个很好的组合:)
Jacob Vlijm 2014年

是的,我已经做完了,我的回答被删除了,我认为这对您有所帮助。您如何看待我的评论?
Lety 2014年

@Letizia评论=完美,我将进行编辑。谢谢!
2014年

6

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

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

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

假设有一个可执行文件foobar01.sh出现在/home/user/foo1/foo2/foobar01.sh要执行定期。输入整个“路径”将非常耗时。因此,我们将目录添加到$PATH变量中,foobar.sh即使不指定路径也可以直接执行。

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

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


2

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

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

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

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

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

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

高温超导

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.