我在 Linux 和 Windows 之间来回切换,并且经常需要 sudo 类型的命令。实现此目的的最佳方法是什么?
答案1
我在一个小县城担任系统分析师,经常在 Windows 和 Linux 之间切换。大部分情况下,情况还不错。但是,我经常遇到 ls 和 sudo 的问题。在 googlefu 之后,我发现这个 StackOverflow 帖子这有助于设置“ls”命令。
echo dir %* > %systemroot%\system32\ls.bat
(由 secghost 和 Vartan Simonian 提供)
我用这个代码写了下面的内容:
echo runas ^/noprofile ^/user:<domain>^\<username> ^"cmd /k ^%cd:~0,2^% ^& cd ^%cd^% ^& ^%*^" > %systemroot%\system32\sudo.bat
在提升的命令提示符下运行此命令。将其替换为您的域名或计算机名称以及您有权访问的管理员帐户的用户名。
以后运行 sudo 命令时,系统会提示输入管理员密码,并将您置于当前目录中。运行 sudo 也会运行该命令。例如:sudo del 测试文件
答案2
遗憾的是,Windows 中没有sudo
类似的功能。无法从普通命令提示符运行具有提升权限的命令。您唯一能做的就是确保始终以提升权限运行命令提示符。
答案3
Windows 版 ConEmu 控制台应用程序具有很好的功能,可以创建具有提升的管理员权限的新控制台,同时保留当前目录:https://conemu.github.io/en/LaunchNewTab.html)
脚本:
# create elavated admin console
conemu64.exe -cmd cmd -new_console:a
# inside elevated shell echo the sudo script for powershell
echo "powershell -new_console:a" > c:\windows\sudo.ps1
# for powershell Core:
echo "pwsh -new_console:a" > c:\windows\sudo.ps1
现在您可以在 Powershell 中的 ConEmu 控制台中的任何位置输入
sudo
抱歉,cmd.exe shell 的脚本 sudo.cmd 不起作用...
echo "ConEmu64.exe -new_console:a" > c:\windows\sudo.cmd