파워셸 명령어 Cmdlets
목차
파워셸의 명령어를 Cmdlets 라고 합니다.(Command lets) 마이크로 소프트의 정의에 의하면 cmdlet이란 파워셸의 네이티브 명령입니다. Cmdlet을 깊게 들어가면 내용이 길어져서 스트레스니까 일단 파워셸 자체가 제공하는 Api로 이해하고 하나씩 사용하면서 알아가면 좋을 듯 합니다.
파워셸의 특징인데 Cmdlets가 동사-명사의 형태로 키워드를 보면 뭔가 사용해 본적은 없지만 직관적으로 알것같은 형태의 명령어입니다. 종류가 몇가지 있는데 이해하기가 어렵지 않습니다.
- Get 무엇인가 얻는다 (GET한다)
- Set 정의한다
- Start 실행한다
- Stop 실행중인 뭔가를 정지
- Out 아웃풋한다 (결과물 출력)
- New 뭔가를 만든다
예를 들어 현재 실행중인 프로세스를 가져오고 싶으면 Get-Process 입니다. 말그대로 프로세스를 얻는다. 참고로 파워셸은 대소문자 구별을 하지 않으니까 get-process나 Get-Process 나 똑같습니다. 실행하면 현재 작동중인 프로세스의 리스트를 볼 수 있을 겁니다. 상황에 따라 다르지만 윈도우11의 경우 아무것도 안하고 있어도 보통 수백개의 프로세스가 돌아갑니다.
Get-Content 로 텍스트 파일의 내용을 볼 수 있습니다. 리눅스의 cat 과 비슷합니다.
모든 Cmllet 명령어를 보고 싶으면 아래와 같이 입력합니다. 긴 Cmdlet 리스트가 출력되는데 앞쪽에는 Alias (별명)도 있습니다. 엄청 많은데 그 중 하나를 보면 Get-Content를 gc라고 합니다. 또 Start-Process는 start로 줄입니다. Get-Alias 로 별칭을 확인할 수 있습니다.
Get-Help -Category Cmdlet
조금 길어서 불면하면 파일로 저장(출력)해서 봐도 됩니다.
Get-Help -Category Cmdlet | Out-File -FilePath .\text.txt
명령어 입력이 익숙하지 않다면 PowerShell ISE에서 자동완성 기능을 사용해보는 것도 좋습니다. CMD 중에는 매개변수가 들어가는게 있는데 ISE에서는 정확히 내용이 나옵니다. 셸에서는 Tab 키로 자동완성 하거나 다음 명령어를 볼 수 있는데 아무래도 ISE의 제안이 훨씬 낫겠지요.
Cmdlets 사용법
Cmdlets는 종류가 많아서 사용법을 알아내는게 중요합니다. 우선 Update-Help로 온라인에서 도움말을 업데이트 하도록 한 후 명령어를 체크해봅니다.
예를 들어 Get-Content의 사용법을 알고 싶다면 다음과 같이 매개변수를 줍니다.
Get-Help Get-Content -Examples
예시에 나온 스크립트인데 1부터 100줄까지 텍스트 파일에 컨텐츠를 추가하고 다음 라인의 명령어는 파일을 가져와서 출력합니다. 설명이 잘되어 있어서 도움말을 잘 활용하면 Cmdlets를 잘 쓸 수 있을 것 같습니다.
1..100 | ForEach-Object { Add-Content -Path .\LineNumbers.txt -Value "This is line $_." } Get-Content -Path .\LineNumbers.txt
요약
Cmdlets에 대해서 알아봤고 간단한 예제를 실행해봤습니다. 또 필요한 도움말을 얻는 방법에 대하여 알아봤습니다. 파워셸의 가장 기초적인 내용이니까 모르면 help 문서를 찾아서 읽는 것도 중요합니다.