在我的Mac上,我经常使用bash.对于我的环境设置,我像往常一样将/usr/bin和/usr/local / bin添加到$PATH中.
虽然我确实知道/usr/bin和/usr/local / bin是什么,但我很好奇哪个应该按照惯例在另一个之前?那有什么特别的原因吗?
类似于/usr/lib和/usr/local / lib – 希望答案是相同或相似的.
多一点 –
只是原始问题的扩展,您将如何按照约定在$PATH中订购以下内容?为什么?
/bin /sbin /usr/bin /usr/sbin /usr/local/bin /usr/local/sbin /opt/local/bin /opt/local/sbin
/usr/bin是操作系统提供的二进制文件. /usr/local / bin是用户提供的二进制文件所在的位置.在命令行上键入命令的名称时,shell将按顺序在$PATH环境变量中包含的路径中搜索所述命令.一个常见的模式是在$PATH中将/usr/local / bin放在/usr/bin之前.这允许您安装备用版本的二进制文件,并让它们优雅地“覆盖”操作系统提供的二进制文件.操作系统更新不会破坏用户安装的软件包.这种模式特别是在流行的
Homebrew软件包管理器工具的OSX中使用.
原文链接:https://www.f2er.com/bash/385375.html例如,在撰写本文时,OSX El Capitan提供了git版本2.5.4(在/usr/bin中).如果你想要一个更新的版本,你可以使用Homebrew来安装git版本2.7.0(到/usr/local / bin).由于/usr/local / bin位于$PATH环境变量中的/usr/bin之前,因此当您在shell中发出命令git时,将使用较新的Homebrew版本.
在运行OSX El Capitan的新Mac上(我碰巧有一个),/ etc / paths文件包含以下内容:
/usr/local/bin /usr/bin /bin /usr/sbin /sbin
它产生以下$PATH环境变量:
/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin
这与自制软件兼容.我建议坚持使用此OSX默认值.如果你真的想要包含/usr/local / sbin(在上面的问题中列出),我会把它放在/usr/sbin之前,原因与上面类似.对于/ opt / local / bin和/ opt / local / sbin,我个人没有发现需要将它们添加到路径中,但似乎它们可能与它们的/usr/local类似物位于类似的位置,因为/ opt传统上包含用户安装的二进制文件.
注意:相同的解释适用于/usr/lib与/usr/local / lib.