如何去掉mac的PATH环境变量中的“顽固分子”?
查看系统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目录,而在目录中包含两个配置文件,查看配置文件就是以上粗体路径,将这俩配置文件删掉即可。
补充一下两点: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.macx.cn/thread-2196358-1-1.html