29

我正在尝试设置一个项目,来自 git 的风暴:
https ://github.com/nathanmarz/storm/wiki/Setting-up-development-environment

下载 Storm 版本,解压,然后将解压后的 bin/ 目录放到你的 PATH 中

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

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

有人可以解释 PATH 的概念,这样我以后就可以轻松地设置所有内容,而不必盲目地按照说明进行操作?

4

1 回答 1

38

PATH 是 UNIX(和类 UNIX,例如 GNU/Linux)系统中的一个特殊环境变量,它经常被 shell 使用和操作(尽管其他东西也可以使用它)。

wikipedia 上有一个有点简洁的解释,但基本上它用于定义在哪里搜索可执行文件(无论是二进制文件、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 shell 之外,几乎所有这些都可以缩短为:

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

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

不过,据推测,您可能希望将其保存到特定于 shell 的配置文件(可能是~/.profile, ~/.bashrc, ~/.zshrc... 取决于您的 shell),并且不参考$PWD,而是参考它扩展的任何内容。您可能完成此操作的一种方法是执行以下操作:

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

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

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

也可以看看:

于 2013-08-23T19:20:41.317 回答