我想尝试使用 PowerShell 作为 Ubuntu 18.04 上的默认 shell,但是使用 bash 我可以选择运行某些命令,但sudo
我不确定如何使用 PowerShell 来做到这一点,因为它没有sudo
概念。
在 Windows 上的 PowerShell 中,您必须以管理员身份运行 shell。如果我将默认 shell 设置为 PowerShell,我担心如果没有 sudo,我将无法运行我可能需要的命令,我是否必须进入 bash?我不想默认以管理员身份运行默认 shell。
答案1
如果我理解正确的话,您希望在 Ubuntu 中使用 PowerShell,但您需要 sudo 命令。您可以执行bash -c "sudo <bash command>"
.sudo
通常在 PowerShell 中不起作用,因为它是 Unix 可执行文件,因此您需要将 sudo 与 Bash 命令一起使用。正如其他人指出的那样,runas
这是您在 PowerShell 中的最佳选择。请注意,您需要安装 Ubuntu 或使用其他方法在 CMD/PowerShell 中访问 Bash。我认为您已经使用 WSL 安装了 Ubuntu 命令行,所以如果是这样的话,您应该没问题。
答案2
PowerShell 本身没有 sudo。这就是 -RunAs 的作用,但通常也不是一回事。
有些模块是包装器,试图模拟它。但不是一回事。这些模块在 PSCore 之前就已经存在(PowerShellv6/7 已经存在),因此不能保证它们在这些版本中可以工作。
Find-Module -Name '*sudo*' | Format-Table -AutoSize
<#
# Results
Version Name Repository Description
------- ---- ---------- -----------
2.1.0 Sudo PSGallery Use functionality similar to sudo in PowerShell. GitHub: https://github.com/pldmgg/Sudo
1.4.0 PSSudo PSGallery Function for executing programs with adminstrative privileges
#>