在终端中,如何在没有事先进行身份验证的情况下运行末尾带有 & 的 sudo 命令?

在终端中,如何在没有事先进行身份验证的情况下运行末尾带有 & 的 sudo 命令?

我一直&在某些命令的末尾使用 来释放终端。但是,如果它需要 sudo,它就不起作用。我可以通过在此命令之前运行随机 sudo 命令来解决这个问题,但这很麻烦,我也可以在命令中输入密码,但这不安全。有没有其他方法可以让这些命令正常工作。

谢谢。

答案1

本质上,你正在做的是使用 将命令放入后台&。有一种手动方法可以做到这一点。以下是一个例子sudo apt-get update

  1. sudo apt-get update照常运行,输入密码。
  2. 命令启动后,按Ctrl+Z暂停进程
  3. 运行bg命令将停止的作业放入后台。

注意,输出仍会显示到stdout。如果没有必要,可以使用&> /dev/null附加到命令的重定向来隐藏输出。

另一种方法是使用 sudo 权限运行 shell,然后使用-c标志运行命令,如下所示:

sudo bash -c 'apt-get update &>/dev/null  & '

相关内容