파워셸
파워셸(영어: PowerShell) 또는 윈도우 파워셸은 마이크로소프트가 개발한, 확장 가능한 명령 줄 인터페이스(CLI) 셸 및 스크립트 언어를 특징으로 하는 명령어 인터프리터이다. 원래는 '윈도우 파워셸(Windows PowerShell)'로 윈도우 구성요소를 중심으로 개발하였으나 파워셸 코어(PowerShell Core)를 도입하고 2016년 8월 18일에 오픈 소스를 공개하여 각종 운영 체제에서 쓰일 수 있게 하였다. 윈도우 버전은 닷넷 프레임워크 기반으로 그 외 운영체제 버전은 닷넷 코어 기반으로 출시되었다.
원저자 | 제프리 스노버, 브루스 파예트, 제임스 트루허(그 외 개발자) |
---|---|
개발자 | 마이크로소프트 |
발표일 | 2006년 11월 14일 |
안정화 버전 | 7.4.3
/ 2024년 6월 18일[1] |
미리보기 버전 | v7.4.0-preview.2
/ 2023년 3월 14일[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 |
파워셸에서 관리 작업은 일반적으로 특정 작업을 구현하는 특수화된 닷넷 클래스인 cmdlet(command-lets로 발음)을 통해 실행된다. 이러한 기능은 공급자를 통해 파워셸에 제공되는 파일 시스템이나 레지스트리와 같은 다른 데이터 저장소의 데이터에 액세스하여 작동된다. 타 개발자는 cmdlet 및 공급자를 파워셸에 추가할 수 있다. cmdlet은 스크립트에서 사용할 수 있으며 스크립트는 모듈로 패키지화 할 수 있게 된다.
파워셸은 COM 및 WMI에 대한 완전한 액세스를 제공하므로 관리자는 원격 리눅스 시스템 및 네트워크 장치를 관리할 수 있도록 WS-Management 및 CIM뿐만 아니라 로컬 및 원격 Windows 시스템에서 모두 관리 작업을 실행시킬 수 있다. 파워셸은 파워셸 런타임을 다른 응용 프로그램에 포함 할 수 있는 호스팅 API도 제공하고 그런 다음 이러한 응용 프로그램은 파워셸 기능을 사용하여 그래픽 인터페이스를 통해 노출된 작업을 포함하여 특정 작업을 구현할 수 있다. 이러한 기능은 마이크로소프트 SQL 서버 2007 버전에서 파워셸 cmdlet 및 공급자로 관리 기능을 노출하고 필요한 cmdlet을 호출하는 파워셸 호스트로 그래픽 관리 도구를 구현하는 데 사용해왔던 것이다. 현재는 마이크로소프트 SQL 서버 2008을 시작으로 각종 MS 응용 프로그램도 파워셸 cmdlet을 통해 관리 인터페이스를 제공한다.
파워셸에는 Get-Help cmdlet
명령어로 통해 액세스 할 수 있는 광범위한 콘솔 기반 도움말(유닉스 셸의 man page와 유사)을 볼 수 있다.(혹은 Get-Help
로 온라인 전환을 통해 사례 별로 웹 도움말을 볼 수 있음)
예제
편집다음 예제는 'string' 문자열 중간에 'ABC'를 삽입한다.
PS > 'string'.Insert(1, '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) 처리한 뒤 파이프라인에 따라 입력을 넘긴다 |
리눅스
편집$ # Update the list of packages
$ sudo apt-get update
$ # Install pre-requisite packages.
$ sudo apt-get install -y wget apt-transport-https software-properties-common
$ # Download the Microsoft repository GPG keys
$ wget -q https://packages.microsoft.com/config/ubuntu/20.04/packages-microsoft-prod.deb
$ # Register the Microsoft repository GPG keys
$ sudo dpkg -i packages-microsoft-prod.deb
$ # Update the list of products
$ sudo apt-get update
$ # Enable the "universe" repositories
$ sudo add-apt-repository universe
$ # Install PowerShell
$ sudo apt-get install -y powershell
$ # Start PowerShell
$ pwsh
> exit
|
(예시) 우분투 20.04[7]에서 설치후 터미널에서 파워셸을 시작하고 빠져나오는 예 |
같이 보기
편집각주
편집- ↑ “v7.4.3 Release of PowerShell”. 《PowerShell/PowerShell repo》. 마이크로소프트. July 03, 2024에 확인함 – GitHub.com 경유.
- ↑ “v7.4.0-preview.2 Release of PowerShell”. 《PowerShell/PowerShell repo》. 마이크로소프트. 2023년 4월 13일에 확인함 – GitHub.com 경유.
- ↑ “PowerShell for every system!”. 2017년 6월 12일 – GitHub 경유.
- ↑ Clear-Host는 미리 정의된 파워셸 기능으로 추가되어 있다.
- ↑ 가 나 윈도우 NT4, 윈도우 98 리소스 킷, 윈도우 2000 지원 도구에서 사용할 수 있음
- ↑ 가 나 윈도우 XP 프로페셔널 에디션 이후에서 사용할 수 있음
- ↑ (Microsoft Ignite - Linux에 PowerShell 설치)https://docs.microsoft.com/ko-kr/powershell/scripting/install/installing-powershell-on-linux?view=powershell-7.1
외부 링크
편집- 파워셸 - 공식 웹사이트
- (영어) PowerShell - 깃허브
- Windows PowerShell Survival Guide Archived 2012년 9월 15일 - 웨이백 머신 on TechNet Wiki