有时候,一些“小”事让我感到惊讶不了解 Unix。多年来,我偶尔注意到我实际上不知道如何干净地处理 sudo 密码提示。每隔一段时间,我会执行一些 sudo 操作,然后才意识到我实际上根本不想运行该命令。这种情况很少发生,我总是忘记询问,但经常发生,以至于我记得我仍然没有学会正确的堕胎方法。
一旦 sudo 开始要求输入密码,它就不想放弃。你不能Ctrl+C它。如果你给它正确的密码,它将运行我决定要中止的命令。我发现的唯一解决方案是给它错误的密码,直到它放弃询问并退回到实际上监听Ctrl+ 的su 提示符C。这对我来说感觉很脏。令人难过的是我改变了对命令的看法;不能干净利落地取消真是令人尴尬。
在出现密码提示时告诉 sudo 中止尝试的正确方法是什么?
答案1
我通常做的是Ctrl+Z暂停任务,然后kill %1
甚至kill -9 %1
停止:
> sudo ls
[sudo] password for user:
Ctrl+Z
[1] + 512 Suspended sudo ls
> kill %1
[1] + Suspended (tty output) sudo ls
> kill -9 %1
[1] Killed sudo ls
(如果您的 shell 中有更多后台任务:您需要在百分号后给出的数字是括号中的数字[]
)。
答案2
您可以使用Ctrl+来完成此操作D。