什么是MAC(UNIX)系统上的PATH

时间:2013-08-23 18:40:28

标签: linux macos unix system apache-storm

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

Download a Storm release , unpack it, and put the unpacked bin/ directory on your PATH

我的问题是什么是PATH的意思,他们究竟希望我做什么?

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

有人可以解释PATH的概念,所以我可以在以后轻松设置所有内容,而不是盲目地遵循指示吗?


这绝对是技术问题。也许是专业人士的琐事。但对于像我这样的入门人士确实需要一些指南。我不明白为什么人们试图关闭这个问题。

1 个答案:

答案 0 :(得分:35)

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 - 兼容的)shell,你应该可以做这样的事情,如果你在{{{{ 1}}目录是:

bin

除了实际的Bourne shell之外,还可以缩短为:

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

(我不打算为CSH兼容的shell解释(因为:我同意你don't use them的其他建议),但也可以在其中做类似的事情,如果碰巧是你的出于某种原因选择的环境。)

但是,据推测,您可能希望将其保存到特定于shell的配置文件(可能是: $; export PATH="$PATH:$PWD/bin" ~/.profile~/.bashrc ...取决于您的shell),并且没有引用~/.zshrc,而是引用它扩展到的任何内容。你可以做到这一点的一种方法是做这样的事情:

$PWD

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

当然,您也可以通过其他方式生成相应的命令,尤其是当: $; echo "export PATH=\"\$PATH:$PWD/bin\"" 目前不在$PWD目录的位置时。

另见: