使用 sudo 以 Root 身份运行最后执行的命令!

Mac 终端图标

您是否曾尝试运行命令行工具,却发现您没有必要的权限来使用它?或者也许命令本身实际上需要 root 访问权限才能运行?您通常会在终端中看到“权限被拒绝”类型的错误消息。与其再次键入整个命令字符串,或者点击向上箭头并将光标移动到带有 sudo 的命令之前,您可以使用一个很棒的技巧,使用 sudo 权限重新运行上次执行的命令。最重要的是,这个很棒的以 root 身份重新运行上一个命令的技巧在 MacOS / Mac OS X 和 Linux 中有效。

好吧,单从标题来看,你可能会认为这只是因为感叹号有点夸张,但我发誓我不只是对 sudo 命令超级兴奋(尽管这个命令是真的很棒!)……不,感叹号实际上是 sudo 工具在这方面的用法的一部分。

如何以根用户身份重新运行上次执行的命令

如果您想快速运行最后执行的命令但作为根超级用户,只需键入以下内容:

sudo !!

是的,这是“sudo”后跟一个空格和两个感叹号。

这将立即运行之前运行的命令,但带有 sudo 前缀,这通常意味着您需要输入管理员密码才能完成序列。

例如,如果您尝试编辑主机文件或您需要系统权限的另一个系统文件。无需重新输入以 sudo 开头的整个命令字符串,只需键入 sudo !!,之前的命令 (!!) 将在 sudo 下运行。

例如,假设您正在尝试修改用户主机文件:

nano /etc/hosts

但是由于缺少适当的用户凭据,您无法保存或编辑文件,对吗?不用担心,无需再次输入完整的“sudo nano /etc/hosts”命令序列,只需输入以下内容:

sudo !!

这采用最后一条命令(在本例中为 nano /etc/hosts)并自动为其加上 sudo 前缀,成为完整的“sudo nano /etc/hosts”

这实际上适用于每个命令行工具和命令执行,所以试试吧,它非常棒。

如前所述,此技巧适用于 MacOS 和 Linux 的命令行,也可能适用于许多其他基于 unix 的操作系统。