2012-07-24 52 views
2

我需要一些帮助来理解为什么我的路径看起来像它的样子。OSX - ZSH - PATH -/usr/bin重复

发出回声$ PATH中的zsh回报:

/Library/Frameworks/Python.framework/Versions/3.2/bin:/usr/bin/:/bin:/usr/sbin:/sbin: 
/usr/local/bin:/usr/X11/bin:/usr/local/go/bin:/usr/bin 

现在,让我们有不同的部分仔细一看:

- /Library/Frameworks/Python.framework/Versions/3.2/bin: 

它来自我的.zprofile(Python 3中安装)

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

这些部分来自我的/ etc/paths文件夹。

- /usr/X11/bin: 

这部分来自于我等/ path.d文件夹

- /usr/local/go/bin: 

GO安装过程中加入这部分。

- /usr/bin 

???

我看过 -/etc/paths -.zshrc -.zprofile -.profile -/etc/profile -.zshenv。 它们都没有向PATH发送或添加第二个/ user/bin。

如果我不知道要编辑哪个文件,如何从PATH中删除第二个/ user/bin?

谢谢。

+3

你可以看看当它启动你的shell做什么:'zsh -x -i -c exit'。或者,如果您只查找与路径相关的问题:'zsh -x -i -c exit 2>&1 | grep -C 2 -i path' – 2012-07-24 16:37:30

+0

嗨塞巴斯蒂安,谢谢你的时间。我对新的zsh和shell脚本来理解你的两个命令。我测试了它们。 – politicus 2012-07-24 16:49:51

回答

7

在ZSH,在PATH变量中删除重复经typeset -U PATH,而不是typeset -u PATH做(后者将只是转换内容为大写..)

0

虽然这并不能解释第二个/usr/bin来自何处,但您可以在最后一个将任何内容追加到$ PATH后的地方放入typeset -u PATH。这将删除重复的条目。