如何去掉mac的PATH环境变量中的“顽固分子”?

转载自 https://www.jianshu.com/p/101f64e94fa6

 

查看系统PATH环境变量,发现了多余的环境变量,遍寻网络实现未果。

echo $PATH

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

/usr/local/go/bin:/Library/Frameworks/Mono.framework/Versions/Current/Commands

以上粗体部分属于已经变更了环境而不存在的路径,如何去掉?

按照网上了解的关于mac的环境变量执行顺序分别查找如下文件:

/etc/profile

/etc/paths

~/.bash_profile

~/.bash_login

~/.profile

~/.bashrc

通过查询以上文件,都未发现粗体部分的路径,那么意味着这些配置是其他应用安装的时候配置的,只有找到这个配置才能够去掉该路径。

找寻最终的结果发现在如下路径下也存在着profile和paths文件。

/private/etc/profile

/private/etc/paths

但是查询这两文件依然没有找到粗体中的路径,却在/private/etc/下发现了paths.d目录,而在目录中包含两个配置文件,查看配置文件就是以上粗体路径,将这俩配置文件删掉即可。

 

如何去掉mac的PATH环境变量中的“顽固分子”?

补充一下两点:

 

原文:

1. /etc是一个软连接,指向的就是/private/etc目录,所以说/private/etc/和/etc/是同一个事情

2. 如果查看/etc/profile文件,标准的就是如下几行:

# System-wide .profile for sh(1)

if [ -x /usr/libexec/path_helper ]; then

eval `/usr/libexec/path_helper -s`

fi

if [ "${BASH-no}" != "no" ]; then

[ -r /etc/bashrc ] && . /etc/bashrc

fi

复制代码

细心点可以发现第4行执行一个程序叫path_helper,这个程序干什么的呢?

man patch_helper就明白了,它就是构造PATH环境变量的,而它读取的目录就是/etc/paths.d and /etc/manpaths.d之中的环境变量设置文件。其中每个文件都是一个程序自己的所需环境变量的路径。



作者:唐岩岩
链接:https://www.jianshu.com/p/101f64e94fa6
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

 

More

mac 环境变量 多了 哪里删除
Mac OS增删环境变量 
mac下怎样删除冗余的环境变量?
Mac OS X 如何删除已添加的环境变量