【问题标题】:What is PATH on a Mac (UNIX) system?Mac (UNIX) 系统上的 PATH 是什么?
【发布时间】:2013-08-26 21:51:54
【问题描述】:

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

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

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

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

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

【问题讨论】:

  • 关于关闭的投票,我可以想到这可能发生的两个原因:(1)这本身可以说不是一个 programming 问题,因此可能不是适合the on-topic standards,而不是属于SU,和/或(2)这是一个之前可能被问过(和回答)的问题。不过,我觉得这是一个足够有效的问题(即使这可能是错误的发布位置),所以我添加了一个答案,希望对您有所帮助。最好的!

标签: linux macos unix path


【解决方案1】:

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

on wikipedia 有一个有点简洁的解释,但基本上它用于定义在何处搜索可执行文件(无论是二进制文件、shell 脚本等)。

您可以通过一个简单的 shell 命令找出您当前的 PATH 设置:

: $; echo $PATH

(注意:: $; 表示您的 shell 提示符;它可能对您来说非常不同;只要知道您的提示符是什么,这就是我用该字符串表示的内容。)

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

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

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

从那里,本文档告诉您要做的是将解压缩软件的目录,特别是其bin 子目录,添加到您的$PATH 变量中。如何执行此操作在一定程度上取决于您使用的 shell,但对于大多数(Bourne-compatible)shell,如果您位于 bin 目录所在的目录中,您应该能够执行此类操作是:

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

除了一个实际的 Bourne shell 之外,几乎所有这些都可以缩短为:

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

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

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

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

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

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

另见:

【讨论】:

  • 很遗憾第一个链接坏了。
  • 感谢您提请我注意。我找到了指向相同内容的更新链接,并在答案中对其进行了更新。 (注意:这是第一个 See also 链接,而不是整个答案中的第一个链接。)
猜你喜欢
  • 1970-01-01
  • 2015-10-05
  • 2020-07-31
  • 1970-01-01
  • 2010-10-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多