본문 바로가기

Windows/PowerShell

#2 Cmdlet이란?

안녕하세요 빅두 입니다.

이전 블로깅은 굉장히 간단하고 심플한 내용이었습니다. 오늘 역시 그렇습니다. ㅎㅎ

그럼 가벼운 마음으로 읽어 주시길 바라며 시작하겠습니다.

 

Cmdlet이란 이전 글에서 언급드린 대로 Powershell에서 실행할 있는 "명령어" 입니다. 아주 심플한 정의이죠.

Cmdlet 사용자가 직접 제작할 수도 있지만, 기본적으로는 아래와 같은 형식을 가지고 있습니다.

 



Cmdlet 이와 같은 형식을 가지고 있기 때문에 사용자가 원하는 명령어를 찾을 매우 유용하게 찾아볼 있습니다. 억지스럽지만, Cmdlet 읽어 보면 신기하게도 말이 됩니다. 그렇기 때문에 기본적으로 Cmdlet 찾을 때에는 Cmdlet 예측 이라는 것이 가능하며, 도움말을 보지 않고도 "어떤 명령을 실행하겠구나~" 라는 예상을 하실 있습니다.

 

Cmdlet Object 출력합니다. 처음에는 "Object 출력해서 좋은 점이 있나?" 했지만 사용하면 수록 매력에 빠져들어 지금은 Powershell Cmdlet만큼 편한 명령어는 없다고 생각합니다. 다른 언어들은 장벽을 허물기 위해 JSON 형식이나 YAML형식을 사용하여 사용자가 읽고 시스템이 접근하기 편한 형식을 만들고 있습니다만, 재활용성 측면이든 사용자 측면이든 Object만한 형식을 대체하기는 힘들 것이라 생각합니다.

 

Cmdlet 출력 값인 Object Powershell 동작하는 .Net 환경에서 제공하는 Object 동일합니다. 따라서 C# 연동하여 사용하기에 좋으며 실제로 Powershell C# 완벽하게 지원하고 있습니다.

 

Cmdlet pipeline 지원하며, 결과 값인 Object pipeline으로 넘겨 다음 cmdlet 받아 처리하는 방식입니다. 주의하실 점은 pipeline으로 보내시기 전에 넘어가는 Object 유형을 먼저 확인 하신 사용하시는 것이 좋습니다.

 

어려운 이야기는 나중에 하기로 하고요. 개인적인 생각을 말씀 드리자면 Cmdlet 명령어를 외울 필요 없이 어떤 기능을 수행할 있다는 개념만 알고 계서도 80% 이상은 사용이 가능하다고 생각합니다. 이는 예측 가능한 Cmdlet 형태와 Get-Help라는 도움말, 그리고 Cmdlet 검색할 있는 Get-Command라는 cmdlet 있기 때문에 조금 쉽게 접근이 가능하다고 생각합니다.