为什么我的 mac 系统的路径目录这么长?



我刚刚运行了命令

echo $PATH

输出为:

/opt/anaconda3/condabin:/usr/local/opt/python/libexec/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Library/TeX/texbin:/opt/X11/bin

为什么这么长?是不是应该看起来更像/usr/local/bin

有一个长的PATH变量是很正常的。你的包含一些重复的条目,但这不是真正的问题。

如果执行命令时没有指定路径,shell会在path变量中指定的每个路径中搜索以找到它。在您的示例中,它会在/opt/anaconda3/condabin中搜索,然后在/usr/local/opt/python/libexec/bin中搜索,依此类推

通常情况下,可执行文件有多个位置,因此PATH变量中有多个条目用冒号分隔。通常,第三方软件(如您的示例中的Anaconda(会将自己的文件夹添加到PATH变量中。请查看/etc/paths/etc/paths.d和您的shell配置文件,其中可能会添加这些路径。

从安全角度来看,如果/opt/anaconda3/condabin或/usr/local/opt/python/libexec/bin是用户/其他人可写的,那么您的PATHS可能会有风险,因为任何人都可以将恶意可执行文件放在那里,屏蔽/bin或/usr/bin中系统提供的可执行文件。如果不是绝对必要的话,应该在末尾添加必要的第三方路径,因为它们通常不应该取代现有的二进制文件。

最新更新