一位朋友告诉我,Windows PowerShell没有这些unix样式的命令。好吧,我试过,看到我实际上可以运行这些。
现在我想知道为什么会这样。可能是因为我在这台Windows机器上安装了NodeJ?
如果它们在Windows PowerShell中默认不可用,是否有办法找出在Windows安装中使用它们的确切原因?
运行Windows 8.1。
对于那些感兴趣的人,基于所选择的答案,我发现在这台机器上安装Git已经使用了这些命令:
PS C:\Users\myusername> where.exe grep
C:\Users\myusername\AppData\Local\Programs\Git\usr\bin\grep.exe
PS C:\Users\myusername> where.exe less
C:\Users\myusername\AppData\Local\Programs\Git\usr\bin\less.exe
答案 0 :(得分:2)
你可以试试这个
where.exe find
where.exe less
where.exe grep
如果您的电脑上有这些工具,他们会返回
请注意,您需要在cmd.exe上使用where.exe
而不是where cmd
,因为powershell上的where
具有不同的含义
答案 1 :(得分:2)
如果你想知道为什么你可以看到它们,你可以运行Get-Command
命令,它会告诉你文件的调用位置(也是一个很好的工具,可以找到当你调用的底层VBS脚本)不时运行命令)
例如,LS
命令在PowerShell中有效,但它实际上与Bash中使用的二进制文件不同。
_>Get-Command ls
CommandType Name Version Source
----------- ---- ------- ------
Alias ls -> Get-ChildItem
我们在这里可以看到,在这种情况下,运行LS
实际上是一个PowerShell别名,它调用Get-ChildItem
的Cmdlet(也就是说,本机PowerShell命令)。
如果您在其他命令上运行此命令,则可以确定看到它们的原因。也许您在某些时候安装了cygwin,或者安装了Python / Ruby(一些安装程序包打包Bash二进制文件)。