我注意到我的虚拟机和服务器上 root 的默认路径不包括 /usr/local/bin
sudo -s
echo $PATH
/sbin:/bin:/usr/sbin:/usr/bin
Run Code Online (Sandbox Code Playgroud)
而服务器上的普通用户确实有 /usr/local/bin
/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/home/sowen/bin
Run Code Online (Sandbox Code Playgroud)
为什么 root 在路径中不需要 /usr/local ?
用户定义的默认路径在哪里?
von*_*and 22
因为它没有在root的相关shell启动文件中设置。
传统上,/usr/local
已用于非官方的、本地安装的软件(通常覆盖有缺陷/损坏/有限的“官方”版本;一位朋友打趣说,当新的 Sun 到来时,第一步是GNU > /usr/local
)。就像root
万能的一样,它运行的程序中的任何错误或设计错误都可能是致命的。按理运行例如本地、实验版本的make
root 应该谨慎对待。最好多走一步,给出明确的路径。