Почему я могу меньше бегать, искать и искать в Windows Powershell?

Друг сказал мне, что в Windows PowerShell нет этих команд в стиле Unix. Что ж, я попробовал и увидел, что на самом деле могу запустить их.

Теперь мне интересно, почему это так. Может быть, это потому, что я установил NodeJs на этот компьютер с Windows?

Если они по умолчанию не используются в 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

person Steve Waters    schedule 03.11.2017    source источник
comment
find в Windows — это find.exe, который представляет собой инструмент, аналогичный grep в Linux.   -  person phuclv    schedule 03.11.2017


Ответы (2)


Вы можете попробовать это

where.exe find
where.exe less
where.exe grep

Они вернут путь к exe-файлу, если эти инструменты существуют на вашем ПК. Вы всегда можете запустить find, потому что есть find.exe, хотя это не Unix find, а инструмент для поиска текста . less и grep не будут доступны по умолчанию, но если у вас установлены Cygwin, MSYS или Gnu32, они будут готовы в пути. Git в Windows работает на MSYS, поэтому неудивительно, что вы можете запускать less, grep или другие инструменты Unix.

Обратите внимание, что вам нужно использовать where.exe command вместо только where command, как в cmd.exe, потому что where в powershell имеет другое значение.

person phuclv    schedule 03.11.2017
comment
Спасибо. Установка Git принесла эти команды :) Я обновлю вопрос и обращусь к вашему ответу. - person Steve Waters; 06.11.2017

Если вам интересно, почему вы их видите, вы можете запустить команду Get-Command, которая сообщит вам, откуда вызываются файлы (также отличный инструмент для поиска базовых сценариев VBS, которые время от времени вызываются при запуске команд)

Например, команда LS работает в PowerShell, но на самом деле это не тот двоичный файл, который используется в Bash.

_>Get-Command ls

CommandType     Name                                               Version    Source
-----------     ----                                               -------    ------
Alias           ls -> Get-ChildItem

Здесь мы видим, что в этом случае запуск LS на самом деле является псевдонимом PowerShell, который вызывает командлет (то есть собственную команду PowerShell) Get-ChildItem.

Если вы запустите это для других команд, вы можете определить, почему вы их видите. Возможно, вы установили cygwin в какой-то момент или установили Python / Ruby (некоторые установщики упаковывают двоичные файлы Bash).

person FoxDeploy    schedule 03.11.2017