파워셸

위키백과, 우리 모두의 백과사전.
(윈도우 파워셸에서 넘어옴)
둘러보기로 가기 검색하러 가기
파워셸
PowerShell
PowerShell Core 6.0 icon.png
윈도우 파워셸 세션의 스크린 샷
윈도우 파워셸 세션의 스크린 샷
원저자제프리 스노버, 브루스 파예트, 제임스 트루허(그 외 개발자)
개발자마이크로소프트
발표일2006년 11월 14일
안정화 버전
미리보기 버전
6.2.0-preview.3 / 2018년 12월 10일[2]
저장소 위키데이터에서 편집하기
운영 체제마이크로소프트 윈도우
(윈도우 7 이상)
윈도우 서버
(윈도우 서버 2008 R2 이상)
macOS
(10.12 이상)
우분투
(14.04, 16.04, 17.04)
데비안
(8.7+, 9)
CentOS
(7)
RHEL
(7)
오픈수세
(42.2)
페도라
(25, 26)
플랫폼닷넷 프레임워크, 닷넷 코어
종류명령형, 파이프, 객체 지향, 함수형, 반영
라이선스MIT 라이선스[3]
(단, 윈도우 구성요소는 제외)
웹사이트microsoft.com/powershell

파워셸(영어: PowerShell)은 마이크로소프트가 개발한 확장 가능한 명령 줄 인터페이스(CLI) 스크립트 언어를 특징으로 하는 명령어 인터프리터이다. 원래는 '윈도우 파워셸(Windows PowerShell)'로 윈도우 구성요소를 중심으로 개발하였으나, 파워셸 코어(PowerShell Core)를 도입하고, 2016년 8월 18일오픈 소스로 공개하여, 각종 운영 체제에서 쓰일 수 있게 개발하여 공개하고 있다. 윈도우 버전은 닷넷 프레임워크 기반으로, 그 외 운영체제 버전은 닷넷 코어으로 기반으로 개발한다.

파워셸에서 관리 작업은 일반적으로 특정 작업을 구현하는 특수화된 닷넷 클래스인 cmdlet(command-lets로 발음)을 통해 실행된다. 이러한 기능은 공급자를 통해 파워셸에 제공되는 파일 시스템이나 레지스트리와 같은 다른 데이터 저장소의 데이터에 액세스하여 작동된다. 타 개발자는 cmdlet 및 공급자를 파워셸에 추가 할 수 있다. cmdlet은 스크립트에서 사용할 수 있으며 스크립트는 모듈로 패키지화 할 수 있게 된다.

파워셸은 COMWMI에 대한 완전한 액세스를 제공하므로 관리자는 원격 리눅스 시스템 및 네트워크 장치를 관리 할 수 ​​있도록 WS-ManagementCIM뿐만 아니라 로컬 및 원격 Windows 시스템에서 모두 관리 작업을 실행 시킬 수 있다. 파워셸은 파워셸 런타임을 다른 응용 프로그램에 포함 할 수 있는 호스팅 API도 제공하고, 그런 다음 이러한 응용 프로그램은 파워셸 기능을 사용하여 그래픽 인터페이스를 통해 노출 된 작업을 포함하여 특정 작업을 구현할 수 있다. 이러한 기능은 마이크로소프트 SQL 서버 2007 버전에서 파워셸 cmdlet 및 공급자로 관리 기능을 노출하고 필요한 cmdlet을 호출하는 파워셸 호스트로 그래픽 관리 도구를 구현하는 데 사용해왔던 것이다. 현재는 마이크로소프트 SQL 서버 2008을 시작으로, 각종 MS 응용 프로그램도 파워셸 cmdlet을 통해 관리 인터페이스를 제공한다.

파워셸에는 Get-Help cmdlet 명령어로 통해 액세스 할 수 있는 광범위한 콘솔 기반 도움말(유닉스 셸man page와 유사)을 볼수 있다. (혹은, Get-Help로 온라인 전환을 통해 사례 별로 웹 도움말을 볼 수 있음.)

예제[편집]

다음 예제는 'string' 문자열 중간에 'ABC'를 삽입한다.

PS > 'string'.Insert(2, 'ABC')
sABCtring

다음은 닷넷 객체의 정적 메소드를 호출하는 예이다.

PS > [System.Math]::Sqrt(16)
4

다음 예제는 특정 RSS 피드에서 최근 8개의 항목의 제목을 출력한다.

PS > $x = new-object xml
PS > $x.load('http://blogs.msdn.com/powershell/rss.aspx')
PS > $x.rss.channel.item | select title -f 8

비슷한 명령어들과 cmdlet 비교[편집]

파워셸에 들어간 cmdlet과 잘 알려진 명령 줄 인터프리터의 비슷한 명령어를 아래의 표로 나열해 놓았다.

윈도우 파워셸
(Cmdlet)
윈도우 파워셸
(다른 이름)
cmd.exe / COMMAND.COM
(MS-DOS, 윈도우, OS/2, 등)
Bash
(유닉스, BSD, 리눅스, 맥 오에스 텐 등)
설명
Get-Location gl, pwd cd pwd 현재 디렉터리/작업 디렉터리를 보여 준다.
Set-Location sl, cd, chdir cd, chdir cd 현재 디렉터리를 바꾼다
Clear-Host cls, clear cls clear 화면을 지운다[4]
Copy-Item cpi, copy, cp copy cp 하나 이상의 파일 / 완전한 디렉터리 트리를 복사한다
Get-Help help, man help man 명령에 대한 도움말을 보여 준다
Remove-Item ri, del, erase, rmdir, rd, rm del, erase, rmdir, rd rm, rmdir 파일 / 디렉터리를 지운다
Rename-Item rni, ren ren, rename mv 파일 / 디렉터리의 이름을 바꾼다
Move-Item mi, move, mv move mv 파일 / 디렉터리를 새로운 위치로 옮긴다
Get-ChildItem gci, dir, ls dir ls 현재 디렉터리의 모든 파일 / 디렉터리를 나열한다
Write-Output echo, write echo echo 문자열, 변수 등을 표준 출력(stdout)으로 출력한다
Pop-Location popd popd popd 현재 디렉터리를 맨 마지막에 스택으로 푸시(push)한 디렉터리로 바꾼다
Push-Location pushd pushd pushd 현재 디렉터리를 스택으로 푸시(push)한다
Set-Variable sv, set set set 변수 값을 설정하거나 새로 만든다
Get-Content gc, type, cat type cat 파일의 내용을 보여 준다
Select-String find, findstr grep 패턴에 맞추어 줄들을 출력한다
Get-Process gps, ps tlist,[5] tasklist[6] ps 현재 실행 중인 모든 프로세스를 나열한다
Stop-Process spps, kill kill,[5] taskkill[6] kill 실행 중인 프로세스를 끝낸다
Tee-Object tee 없음 tee 입력을 파일이나 변수로 파이프(pipe) 처리한 뒤 파이프라인에 따라 입력을 넘긴다

각주[편집]

  1. Plunk, Travis. “Release v6.1.1 Release of PowerShell Core”. 《GitHub PowerShell Core repository》 (영어). 2018년 11월 17일에 확인함. 
  2. Plunk, Travis. “Release v6.2.0-preview.3 Release of PowerShell Core”. 《GitHub PowerShell Core repository》 (영어). 2019년 1월 14일에 확인함. 
  3. “PowerShell for every system!”. 2017년 6월 12일 – GitHub 경유. 
  4. Clear-Host는 미리 정의된 파워셸 기능으로 추가되어 있다.
  5. 윈도우 NT4, 윈도우 98 리소스 킷, 윈도우 2000 지원 도구에서 사용할 수 있음
  6. 윈도우 XP 프로페셔널 에디션 이후에서 사용할 수 있음

외부 링크[편집]