首页 > 解决方案 > 为什么我的mac系统的path目录那么长?

问题描述

我刚刚运行了命令

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吗?

标签: macosterminal

解决方案


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。如果不是绝对必要的第三方路径,则应将其添加到末尾,因为它们通常不应替换现有的二进制文件。


推荐阅读