一尘不染

在Mac(UNIX)系统上,PATH是什么?

linux

我正在尝试建立一个项目,从git风暴:https :
//github.com/nathanmarz/storm/wiki/Setting-up-development-
environment

下载Storm发行版,解压缩,然后将解压后的bin /目录放在PATH中

我的问题是:PATH是什么意思?他们到底要我做什么?

有时我会看到一些/ bin / path,$ PATH或echo PATH。

有人可以解释PATH的概念吗,这样我以后就可以轻松地设置所有内容,而不必盲目地遵循说明?


阅读 710

收藏
2020-06-03

共1个答案

一尘不染

PATH是UNIX(和类似UNIX,例如GNU / Linux)系统中的一种特殊环境变量,shell经常使用和操纵它(尽管其他事物也可以使用它)。

维基百科上有一个简短的解释,但基本上,它是用来定义在哪里搜索可执行文件的(无论是二进制文件,shell脚本等)。

您可以使用简单的shell命令找出当前PATH设置为什么:

: $; echo $PATH

(注意:: $;用来表示您的shell提示符;对于您来说可能是完全不同的;只要知道您的提示符是什么,那就是我用该字符串表示的含义。)

根据您的系统和先前的配置,该值会有所不同,但是输出的一个非常简单的示例可能是:

/usr/bin:/bin:/usr/local/bin

这是一个用冒号(:)分隔的目录列表,可在其中搜索可执行文件(例如ls,等等)。简而言之,当您尝试从Shell(或以某些方式从其他程序中)执行命令时,
,它将按顺序搜索该列表中的每个目录,以查找您提供的名称的可执行文件,然后运行找到的第一个文件。根据您的问题,这就是概念。

在这里,本文档告诉您要做的就是将解压缩软件的目录(尤其是其bin子目录)添加到$PATH变量中。如何执行此操作取决于您使用的是哪个shell,但是对于大多数(与Bourne兼容)的shell,如果您位于该目录所在的目录中,则应该能够执行以下操作bin

: $; PATH="$PATH:$PWD/bin"; export PATH

除了实际的Bourne壳外,几乎可以将其缩短为:

: $; export PATH="$PATH:$PWD/bin"

(我不会费心解释与CSH兼容的shell(因为:我同意您不使用它们的其他建议),但是如果碰巧是您选择的环境,也可以在其中进行类似的操作由于某些原因。)

据推测,不过,你会想这个保存到一个shell特定的配置文件(可能是~/.profile~/.bashrc~/.zshrc…这取决于你的shell),并没有提及$PWD,而是不管它扩大到。您可能会完成此操作的一种方法是执行以下操作:

: $; echo "export PATH=\"\$PATH:$PWD/bin\""

然后将结果行复制/粘贴到适当的配置文件中。

当然,您还可以通过其他方式生成适当的命令,尤其是当您$PWD当前不在该bin目录所在的位置时。

也可以看看:

2020-06-03