网站搜索

你现在可以在 Windows 11 上使用“sudo”——而且它比我想象的更有用


如果你像我一样,你的手指有自己的想法。你整天在不同的操作系统之间切换——家用实验室的 Linux 服务器、用于游戏和日常使用的 Windows 设备。随着时间的推移,你的肌肉记忆会固定在某些命令上。最顽固的一个?sudo。

多年来,我经常不小心在 Windows 命令提示符或 PowerShell 窗口中输入 sudo,然后立即收到错误消息。尽管微软的 Windows Terminal 更新悄悄地让它变得非常出色,但通过命令提示符轻松运行提升权限的进程的方法仍然缺失。

情况已经不同了;你现在可以在 Windows 11 上使用 sudo。你所需要做的只是启用几个开关,就可以享受到近年来 Windows 上最小却可能最重要的工作流程改进之一。

您需要先为 Windows 11 启用 sudo

在 Windows 11 中启用 sudo 只需几秒钟,但很容易被忽略

在 Windows 上默认未启用 Sudo。微软将这个选项隐藏在 Windows 设置应用中,可能是为了防止普通用户不小心删除他们的 System32 文件夹。

要打开它,请按照以下步骤操作:

  1. 打开 Windows 设置并进入系统选项卡。点击高级继续。
  2. 向下滚动找到 启用 sudo 滑块。切换滑块以在 Windows 上启用 sudo。

这还不是全部。微软还允许你选择 sudo 在 Windows 上运行应用程序的方式。目前有三种选项:

  • 在新窗口中: 这是默认选项,sudo 会启动一个全新的终端窗口来运行所请求的命令。
  • 禁用输入时: 这会在您当前的窗口中运行命令,但拒绝接受任何输入。对安全性有好处,但不利于交互性。
  • 内联: 模拟了我们在 Linux 和 macOS 上输入 sudo 时习惯的行为。你输入命令,它会在当前窗口中按预期运行。

我立即切换到了 Inline。对于命令行爱好者,你也可以通过在提升权限的终端窗口中运行以下命令来实现:

sudo config --enable normal

一旦你启用了 sudo 并配置了你希望它运行应用程序的方式,你就可以开始使用了。现在你可以在终端中输入 sudo,后面跟上 Windows 命令,它就会以管理员权限运行该进程。请记住,每次使用 sudo 时,你都会看到一个 UAC(用户帐户控制)窗口请求权限。

在 Windows 上使用 Sudo 不只是一个噱头

这不仅仅是新奇玩意——它改变了你使用终端的方式

我在 Windows 上使用 sudo 的一个最喜欢的用例是配合 Winget 使用。通常,当你尝试使用 Winget 一次性更新所有已安装的程序时,一些应用程序会更新失败,因为它们需要管理员权限才能写入程序文件夹。

使用 sudo,我可以运行 sudo winget upgrade --all,在 UAC 提示中点击是,然后观看我的整个应用库自动更新。

这就是我在 Windows 上大多数时间使用 sudo 的方式。很多内置的 Windows 工具,比如 netstat、diskpart 或 sfc,都需要以管理员权限打开的终端窗口。以前,如果我不在管理员权限窗口中运行这些命令,就必须再开一个管理员窗口。现在,我只需在运行命令前加上 sudo,就不必为了同一个任务打开两个或更多的终端窗口了。

在编辑系统配置文件时,它也非常有用。例如,如果你需要修改 Windows 的 hosts 文件,你必须先打开一个新的提升权限的终端窗口,导航到该文件,然后才能编辑它。另一种方法是以管理员权限打开记事本,然后浏览查找该文件。

使用 sudo,我只需输入:

sudo notepad C:\Windows\System32\drivers\etc\host

这会以管理员权限打开记事本。你可以进行编辑、保存文件,然后关闭记事本。就这样。你无需离开终端环境。

不要指望像 Linux 那样的 sudo

名称相似,规则不同,并且有一些重要的限制

当然,这有一些警告。毕竟我们说的是微软。如果你来自 Linux,你会立即注意到差异。

订阅我们的新闻通讯,获取 Windows 终端快捷键

订阅我们的新闻通讯,获取 Windows 终端快捷键

订阅即表示您同意接收新闻通讯和营销邮件,并接受 Valnet 的使用条款和隐私政策。您可以随时取消订阅。

尽管 sudo 在 Windows 和 Linux 上做的是同样的事情,但它的工作方式不同。在 Windows 上,使用 sudo 会触发 UAC 提示。这是一个不同的安全模型。Windows 并不是以 root 用户身份运行命令,而只是提升了特定进程的权限。

此外,其实现本身相当基础。与 Linux 不同,Windows 上使用 sudo 不会缓存你的凭据。在 Linux 上,如果你输入一次 sudo,通常会有五到十分钟的宽限期,在此期间不会再次要求输入密码。而 Windows 则每次都会显示 UAC 提示。

这就是像 gsudo 这样的第三方工具派上用场的地方,它是由社区开发的工具,并且启发了微软的功能。Gsudo 提供凭证缓存和更细粒度的安全控制。因此,如果你是经常使用 Windows 终端的高级用户,gsudo 可能仍然是更好的选择。

Windows 命令行终于感觉不那么痛苦了

小的生活质量改进积少成多

Sudo 登陆 Windows 几乎具有象征意义。这显示出微软终于开始理解其目标用户群,并且真正尝试去吸引那些在 Bash 和 Zsh 中成长起来的开发者。他们不再像以前那样严格地强迫我们按照 Windows 的方式去做事,这也是我理想的开发者环境不是在 Linux 上的原因之一。

这是一个小命令,对绝大多数 Windows 用户来说,完全无关紧要。但能够最终运行提升权限的命令,而无需点击十几次鼠标,是一种生活质量的提升,比微软想要在 Windows 各个角落塞入的 AI 功能要实用得多。

相关文章