2017-11-03 12 views
1

친구가 Windows PowerShell에 이러한 유닉스 스타일의 명령이 없다고 말했습니다. 글쎄, 나는 실제로 이것들을 실행할 수 있다고 보았다.왜 Windows PowerShell에서 grep 및 find를 덜 실행할 수 있습니까?

이제 왜 그런지 궁금합니다. 이 Windows 시스템에 NodeJ를 설치했기 때문일 수 있습니까?

Windows PowerShell에서 기본적으로 사용할 수없는 경우이 Windows 설치에서 사용하기에 정확히 무엇이 사용되었는지 알아낼 수있는 방법이 있습니까?

Windows 8.1 실행.

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 
+1

Windows에서'find'는 리눅스에서'grep'과 비슷한 도구 인 find.exe입니다. –

답변

2

당신이

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

을 시도 할 수 있습니다 : 선택한 답변에 따라 관심있는 것들에 대해서는

,이 컴퓨터에 힘내를 설치하는 사용하여 해당 명령을 가져왔다 것을 발견 PC에서 해당 도구를 사용할 수 있다면 반환 할 것입니다.

대신 where cmd과 같이 cmd.exe를 사용해야합니다. 원인 powershell의 where은 다른 의미를 가지고 있습니다.

+0

감사합니다. 힘내 설치 그 명령을 가지고 :) 나는 질문을 업데이 트하고 대답을 참조하십시오. –

2

왜 볼 수 있는지 궁금한 경우 Get-Command 명령을 실행하면 파일이 어디에서 호출되는지 알 수 있습니다 (기본 VBS 스크립트를 찾는 데 유용한 도구이기도 함).

예를 들어 LS 명령은 PowerShell에서 작동하지만 실제로는 Bash에서 사용 된 것과 같은 이진 파일이 아닙니다.

_>Get-Command ls 

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

우리는이 경우, LS 실행하면 cmdlet을 호출하는 PowerShell을 별칭이 실제로 것을 여기에서 볼 수 있습니다 Get-ChildItem의 (즉, 말을 네이티브 PowerShell 명령입니다).

다른 명령에서이 옵션을 실행하면 그 이유를 확인할 수 있습니다. 어쩌면 Cygwin을 어떤 시점에 설치하거나 Python/Ruby (일부 설치 프로그램 패키지 Bash 바이너리)를 설치했을 수도 있습니다.