【问题标题】:How do I change the order of $PATH?如何更改 $PATH 的顺序?
【发布时间】:2015-11-17 04:44:38
【问题描述】:

echo $PATH给我

/Library/Frameworks/Python.framework/Versions/3.4/bin:/Applications/Sublime Text 2.app/Contents/SharedSupport/bin:/Users/pathreskoo/anaconda/bin:/Library/Frameworks/Python.framework/Versions/2.7/bin:/opt/local/bin:/opt/local/sbin:/Library/Frameworks/Python.framework/Versions/2.7/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/opt/X11/bin:/usr/local/git/bin

但是当我想将/usr/local/bin 的顺序更改为/Library/Frameworks/Python.framework/Versions/3.4/bin 的前面时,我输入

sudo emacs /etc/paths

我只会得到

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

如何在我的PATH 前面插入/usr/local/bin

【问题讨论】:

    标签: bash path


    【解决方案1】:

    您可以在您的主目录中的文件.bash_profile 中设置您的PATH

    更具体地说,您只需将以下行添加到该文件的末尾

    export PATH=/usr/local/bin:$PATH
    

    这导致/usr/local/bin 被添加到现有PATH 之前。换句话说,文件夹/usr/local/bin 插入到您的PATH 前面,因此它的优先级最高。您还可以通过执行将文件夹附加到您的路径

    export PATH=$PATH:/usr/local/bin
    

    一般情况下,您可以通过以下类似方式设置导出的文件夹或文件的顺序:

    export PATH=/usr/local/bin:/Applications/Sublime Text 2.app/Contents/SharedSupport/bin:/Users/pathreskoo/anaconda/bin:/Library/Frameworks/Python.framework/Versions/2.7/bin:/opt/local/bin:/opt/local/sbin:/Library/Frameworks/Python.framework/Versions/2.7/bin:/usr/bin:/bin:/usr/sbin:/sbin:/opt/X11/bin:/usr/local/git/bin
    

    注意这不是唯一可以设置PATH的地方,但它是一个常见的地方。

    【讨论】:

    • 只在路径前面添加/usr/local/bin 比完全覆盖继承的值 (PATH=/usr/local/bin:$PATH) 更安全。重复不会造成任何损害,而且您的路径不太可能变得如此之大而导致性能问题。
    【解决方案2】:

    你的 $PATH 通常被你的 shell 的启动部分覆盖。通常遵循系统范围的配置文件(/etc/profile),然后是用户端配置文件(如果您使用 bash .profile、.bash_profile、.bashrc)和这些文件中的任何源命令。覆盖的命令主要在.bashrc

    编辑你的 .bashrc 文件并找到 $PATH,你可能会找到导出命令并删除你不想要的路径。 export $PATH=/usr/local/bin:$PATH 覆盖用户范围内的命令。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-01-23
      • 2014-05-09
      • 2011-04-15
      • 2021-01-26
      相关资源
      最近更新 更多