我找到了一些关于 Windows 中的命令行别名的帖子,但其中大多数与cd
经常使用的长命令/路径的别名有关,我无法让它们满足我的需要。
就我而言,当我使用命令提示符时,我会时不时地在 Windows 和 MacOS 之间切换。由于我在两者之间来回切换,我习惯性地会在其中一个或另一个中输入ls
或,然后出现明显的错误。dir
具体到这个问题,我想做的是将“ls”的某种别名映射到“dir”,这样如果我不小心输入了“ls”,我就会获得与“dir”命令相同的功能。我不需要任何复杂的参数映射,只需要一个简单的别名ls
即可dir
。
如果有适用于 cmd 的解决方案,我将非常感激您的指导。
答案1
在 PowerShell 中dir
和ls
具有相同的效果,一个是另一个的别名。
答案2
在 PowerShell 中,默认情况下已存在此类别名。(更准确地说,两者ls
和 dir
是Get-ChildItem
cmdlet 的别名。它还有 、 等默认别名cat
。rm
)因此,只需单独使用 Cmd 的 DOSKEY 即可。
与 Bash 类似,PowerShell 具有别名和 shell 函数:
Set-Alias -Name ls -Value Get-ChildItem
Set-Alias -Name vim -Value notepad.exe
Remove-Item -Path Alias:curl -ErrorAction Ignore
Function kssh {ssh -o PreferredAuthentications=gssapi-with-mic $args}
DOSKEY 在控制台窗口级别定义别名;它们在 Cmd 中工作,因为它一次读取一整行并让控制台处理实际输入(文件制表符补全也由控制台提供),但在 PowerShell 中不起作用,因为它以“原始”模式读取键,一次一个键(它有自己的“PSReadline”,很像 Bash 的 readline)。