본문 바로가기

Windows/PowerShell

#5 Get-Command로 명령어 검색하기

안녕하십니까 빅두입니다.

도움말을 보려면 먼저 cmdlet 알아야겠죠? 그래서 준비했습니다.

 

여러분은 Cmdlet 검색하실 주로 어떻게 검색하실 것인가요? 솔찍히 Bing신님과 Google신님께 여쭈어보면 답은 나옵니다만, 인터넷이 되지 않는다면 Get-Command 사용하시면 됩니다.

Get-Command 그대로 Powershell Command cmdlet 검색하는데 주로 사용합니다.

이전 블로깅에서 언급했듯이 "동사-명사" 이루어져 있기 때문에 이것저것 찾아보기 유용합니다.

그럼 백마디 보다 좋다는 실행을 해봅시다.

 

먼저 Get-Command 그냥 봅시다.

 

PS> Get-Command


 

저는 cmdlet 여러 있어서 5,000여개의 Cmdlet 검색되었네요.

이처럼 현재 컴퓨터에서 사용할 있는 Cmdlet 확인하고 검색 하는데에 사용하는 cmdlet 바로 Get-Command 입니다.

Windows 역할/기능을 설치하거나, 인터넷에서 Powershell Module 다운로드 받아 설치하게 되면 해당 Cmdlet 사용하실 있습니다.

 

그렇다면 Get-Command 어떻게 사용하는 것일까요? Get-Help 통해서 확인해 보겠습니다.

 

PS> Get-Help Get-Command

 

 

사용하는 방법은 가지 입니다. 명령어의 다른 점은 Cmdlet Name으로 검색을 하느냐에 대한 여부 정도가 되겠네요. 보통은 Cmdlet 이름을 알고 싶어서 Get-command 사용하는 것이니 점만 참고하면 쉽게 검색할 있을 같습니다. 그럼 -Detailed 옵션을 사용하여 -Name 매개변수의 특성을 살펴 봅시다.

 

PS> Get-Help Get-Command -Detailed

 

 

입력한 이름과 일치하는 cmdlet 출력한다고 씌여 있는데요. 눈여겨 부분은 Wildcards are permitted. 입니다. Wildcards 제공하기 때문에 우리가 익히 알고 쓰는 '*', '?' 같은 기호를 써서 유추한 Cmdlet 찾아볼 있다는 말이 됩니다.

 

우리가 Cmdlet Get-Host라는 녀석을 찾아보는 시나리오를 작성해 보겠습니다.

컴퓨터에서 Powershell 실행 하였는데, 컴퓨터의 정보를 알고 싶어졌습니다. IT에서 물리머신을 지칭하는 Host라는 단어로 cmdlet 검색 봅니다. 물론 Host 어디에 있는지는 모르니 와일드카드를 사용해 봐야겠습니다.

 

PS> Get-Command *host*

 

 

여러 개의 cmdlet Function, Application 출력되었습니다. Host 정보를 얻어오는 것이니 Get이라는 동사가 들어간 cmdlet 것입니다.

 

PS> Get-Command get-*host*

 

 

컴퓨터의 정보를 확인하는 것이니 Source Microsoft.PowerShell.Utility 이겠네요. 그럼 Get-Host라는 명령어가 존재한다는 것을 확인하실 있습니다.

명령어를 찾았으니 다음은 Get-Help Cmdlet 사용하여 해당 Cmdlet 사용 방법을 알아 보면 되겠네요.

 

생각보다 검색하기 쉽죠?

여러분께서도 위와 같은 논리로 여러 명령어를 찾아보시기 바랍니다.

이렇게 이야기 하면 아무도 하시지 않으실 같으니 문제를 내보죠. 문제를 풀어보시면서 공부가 되셨으면 좋겠습니다.

제시 드린 것들이 Command에서는 쉽게 해결되는 내용(익숙해서)들도 있습니다만 Cmdlet으로 찾아보는 노력도 해보시면 좋으실 같습니다.

 

문제 1. 컴퓨터의 Network Interface IP MAC Address 값을 확인하고 싶다.

문제 2. 바탕화면(또는 특정 폴더) 파일 정보를 알고 싶다.

문제 3. 현재 시간을 알고 싶다.

문제 4. 랜덤으로 값을 출력하고 싶다.