Linux의 생산성을 Windows로 가져올 수 있다면 어떨까요? Windows와 Linux의 주요 차이점 중 하나는 대부분의 Linux 배포판이 강력한 Bash 셸과 함께 제공된다는 점입니다. 그에 비해 Windows의 명령 프롬프트는 베어본입니다. Windows에 동등하게 강력한 터미널이 있다면 어떻게 될까요?
PowerShell을 사용하면 그 꿈이 현실이 될 수 있습니다.
면책 조항:PowerShell은 "Bash for Windows"가 아니며 그렇게 의도된 것도 아닙니다. 예, 둘 다 생산성을 크게 향상시킬 수 있는 명령줄 환경이지만 유사점은 여기서 끝입니다. PowerShell은 강력한 명령줄 환경을 만들기 위한 별도의 접근 방식으로 간주해야 합니다.
PowerShell이란 무엇입니까?
PowerShell은 Windows 명령 프롬프트에 대한 대규모 업그레이드로 생각할 수 있습니다. 동일한 작업을 많이 수행할 수 있지만(예:시스템 탐색, 파일 상호 작용, 속성 수정) 최대 성능을 위해 전체 .NET 프레임워크를 엽니다. 이점을 이해하려면 계속 읽으세요.
PowerShell을 기존 명령 프롬프트보다 더 나은 두 가지 핵심 이점:확장성 및 스크립트 가능성 .
PowerShell은 초기 명령 세트와 함께 제공되지만 cmdlet을 생성하여 고유한 명령을 추가할 수 있습니다. . Cmdlet은 C# 언어를 사용하여 생성된 클래스이며 호출될 때 PowerShell 환경 내에서 실행됩니다. C#을 사용하여 작성되었기 때문에 cmdlet은 전체 .NET 프레임워크에 액세스할 수 있습니다.
.NET 프레임워크에는 Microsoft에서 제공하는 방대한 코드 라이브러리가 포함되어 있습니다. 자체 cmdlet을 작성할 때 해당 코드에 모두 액세스할 수 있습니다. 프로세스 정보를 가져오시겠습니까? 암호화 알고리즘? 데이터베이스 연결? 네트워크 통신? 이 모든 것, 그 이상은 .NET 프레임워크에서 제공하므로 대부분의 작업이 자동으로 완료됩니다. 적절한 함수를 호출하여 한데 모아 놓기만 하면 됩니다.
Microsoft는 PowerShell이 사라지지 않을 것이라는 점을 분명히 했습니다. 실제로 Windows 10의 곧 출시될 패키지 관리자는 PowerShell을 기반으로 할 것이므로 모든 사람이 더 빨리 이를 배우는 것을 고려해야 합니다.
PowerShell이 뛰어난 이유
PowerShell에는 많은 고급 기능이 있으며 대부분은 Windows 프로그래머와 서버 관리자에게만 관련이 있을 수 있지만 이해하기 쉽지만 모든 사람에게 매우 유용한 몇 가지 기본 기능이 있습니다.
간단하지만 강력합니다. PowerShell 환경은 누구나 읽고 몇 시간 안에 선택할 수 있을 만큼 쉽습니다. 있다 학습 곡선이지만 상대적으로 얕고 모두 배울 필요가 없습니다. 그것을 활용하는 것입니다.
자세한 프로세스 정보 대체 작업 관리자를 사용하는 것도 중요하지만 PowerShell을 사용하면 프로세스 관리와 관련하여 몇 가지 깔끔한 트릭을 수행할 수 있습니다. 기본 Get-Process 및 Stop-Process cmdlet으로 시작합니다.
손쉬운 자동화 및 스크립팅 기본 Windows는 작업을 자동화하는 쉬운 방법을 제공하지 않습니다. PowerShell 이전에는 배치 파일이 기본 스크립팅만 수행할 수 있었지만 자동화에는 타사 솔루션(예:Perl, AutoHotkey)이 필요했습니다. 그러나 PowerShell을 사용하면 특정 시간 또는 간격으로 실행되도록 작업을 예약할 수 있습니다.
예를 들어 ScheduledTasks 모듈을 사용하면 트리거(예:특정 시간, 시스템 이벤트 발생 등)에 따라 특정 프로그램 또는 프로세스가 실행되도록 할 수 있으며 해당 작업에 대한 컨텍스트(예:보안 제한).
명령 파이프 및 논리 Bash(Linux)에서는 한 명령의 출력을 다른 명령의 입력으로 사용할 수 있도록 명령을 함께 파이프할 수 있습니다. 예를 들어 기본 Get-Process cmdlet은 실행 중인 모든 프로세스에 대한 정보를 출력합니다. 프로세스 하위 집합의 정보만 원하면 어떻게 합니까? 프로세스 필터 역할을 하는 Where-Object cmdlet으로 이를 파이프하여 Where-Object에서 반환된 프로세스에서만 Get-Process를 실행할 수 있습니다.
PowerShell은 또한 cmdlet 실행 흐름을 제어하는 데 사용할 수 있는 조건부 논리(예:If, Else, For, Switch)에 대한 몇 가지 기본 명령을 제공합니다. 예를 들어 특정 조건이 충족될 때만 특정 cmdlet을 실행하는 PowerShell 스크립트를 만들 수 있습니다(예:RAM이 가득 찼을 때 프로세스 정리).
원격 및 백그라운드 작업. cmdlet을 백그라운드 프로세스로 실행할 수 있을 뿐만 아니라(따라서 한 번에 여러 작업을 비동기식으로 실행할 수 있음) 많은 cmdlet이 그렇게 구성되어 있는 한 네트워크의 원격 컴퓨터에서 실행할 수도 있습니다. 원격 기능이 있는 cmdlet은 해당 cmdlet을 실행할 때 표시할 수 있는 ComputerName 매개변수를 제공하는 경우가 많습니다.
자세한 내용은 PowerShell로 원격 명령 실행에 대한 이 TechNet 페이지를 확인하십시오.
타사 스크립트를 다운로드합니다. 실제로 PowerShell을 직접 확장할 필요는 없습니다. 여러 온라인 리포지토리를 통해 다른 사람이 만든 공개 스크립트 및 cmdlet을 다운로드하고 사용할 수 있습니다.
PowerShell을 배울 수 있는 곳
PowerShell로 손을 더럽힐 준비가 되셨습니까? 다음은 가능한 한 빨리 배우고자 하는 초보자에게 자주 권장되는 몇 가지 리소스입니다.
Don Jones의 PowerShell 자습서. 이 YouTube 비디오 시리즈는 지금은 약간 구식이지만 스크립팅 경험이 전혀 없는 사람들을 위한 좋은 소개를 제공하는 PowerShell 2.0(Windows 7과 함께 제공되는 버전)에 중점을 둡니다. 각 동영상의 길이는 불과 몇 분에 불과하지만 99개이므로 다소 포괄적입니다.
Microsoft 가상 아카데미. MVA는 PowerShell 3.0에 대한 2개를 포함하여 많은 Microsoft 관련 과정을 무료로 제공합니다. 시작하기 과정과 고급 도구 및 스크립팅 과정이 있습니다. 두 과정 모두 약 1시간 분량의 9개의 수업으로 구성되어 있습니다.
TechNet 스크립트 센터. Microsoft 웹 사이트의 TechNet 섹션에는 PowerShell 가이드 및 자습서에 대한 훌륭한 링크가 많이 포함되어 있습니다. 보너스로 Repository 섹션으로 이동하면 다양한 PowerShell 스크립트를 찾아 다운로드할 수 있습니다.
이봐, Scripting Guy! 블로그 [깨진 URL 제거됨]. 이것은 거의 10년 전으로 거슬러 올라가는 많은 훌륭한 정보가 포함된 "PowerShell에 관한 모든 것" 블로그입니다. 새로운 게시물이 매일 게시되며 쉽게 탐색할 수 있도록 태그별로 분류됩니다. 어디서부터 시작해야 할지 모르겠다면 시작하기 태그 [깨진 URL 제거됨]을 검색하여 시작하십시오.
PowerShell이 당신에게 적합합니까?
어떻게 생각하나요? PowerShell이 Windows에서 생산성을 높이는 데 도움이 됩니까? 아니면 요구 사항에 비해 너무 과한가요? 댓글로 여러분의 생각을 공유해 주세요!