为什么有些命令“不存在”?

Ros*_*oss 0 linux troubleshooting command-line

我是一个相当新的 Linux 用户,我注意到某些命令仅对超级用户可用 - 例如关闭。当我知道有一个命令时,我经常感到困惑,尝试执行它但被告知它甚至不存在 - 但我所需要的只是以 root 身份执行它。

我的问题是为什么这些命令不说您没有足够的权限来运行它,或者说您需要成为 root 用户?这是否有一些技术原因,或者只是它的方式?

hea*_*vyd 6

它们“不存在”的原因是它们的位置不在我们的 PATH 环境变量中。您可以通过键入以下内容查看 PATH 中的目录:

echo $PATH
Run Code Online (Sandbox Code Playgroud)

您可以通过键入来检查命令的位置

whereis shutdown
Run Code Online (Sandbox Code Playgroud)

通常您会看到您要查找的命令的目录不在您的 PATH 中。您可以通过在登录脚本 (~/.bash_profile) 中添加以下行来将目录添加到您的路径中。

PATH=$PATH:/my/new/directory
export PATH
Run Code Online (Sandbox Code Playgroud)