如何执行 Bash 命令command
以便sudo
以 root 身份运行它?
使用sudo command
失败:
$ sudo command ls
sudo: command: command not found
答案1
该sudo
命令可以运行外部命令作为另一个用户。它不能用于直接执行 shell 中内置的命令。这也适用于doas
使用它代替 的系统上的命令sudo
。
在某些系统上,该command
命令可作为外部命令使用(/usr/bin/command
例如,在 macOS 上)。在这些系统上,使用 不会有任何问题sudo command ...
,除了正在执行的不是 shell 的内部command
命令这一事实之外,这可能很重要,具体取决于您尝试执行的操作。
在其他系统上,在command
哪里仅有的作为 shell 中内置的命令可用,您可能必须sudo
在特定 shell 上使用,并以这种方式间接调用该 shell 的内置命令command
:
sudo bash -c 'command ...'
同样,这是否符合您的要求取决于您想要实现的目标。