PowerShell 기초 알아보기: 시스템 자동화의 첫걸음

PowerShell 이란?

PowerShell 은 MS 에서 제공 되는 셸 및 스크립팅 언어 이며 인터프리터의 기능을 동시에 지니고 있는 하나의 소프트웨어라 소개한 적이 있다.

이를 이용하면 Windows 에서 작업을 자동화 할 수 있어 시스템 관리, 네트워크 관리 등에 자유롭게 사용할 수 있다.

그래서 내가 저번에 한번 만들어 본 것이 윈도우 에서 WebP 자동 변환 프로그램 만들기 – PowerShell 이며, 실행해 두면 스크린샷 폴더에 PNG 파일이 생성 될 시 자동으로 WebP 파일로 변환 되어 지정 된 폴더 내에 저장 된다.

나는 저 자동화 프로그램을 만들 때 PowerShell 을 처음으로 제대로 사용해 봤는데 내가 생각하던 작업을 생각보다 쉽게 자동화 할 수 있었다.

이를 응용한다면 저런 자동화 작업을 손 쉽게 할 수 있겠구나 싶고 Web 과 ERP 개발자인 내가 주력으로 사용할 순 없겠지만, 업무에서도 여러 모니터링 작업 스크립트를 제작할 수 있겠단 생각이 들었다.

그래서 한번 기초적인 내용을 정리해 공부해 보고자 하는 생각이 들어 글을 작성하게 되었다.

.NET 프레임워크

한글로는 닷넷 이라고도 불리는데 이는 위의 PowerShell 과 같이 마이크로소프트가 만든 프레임워크다.

소프트웨어 에서 프레임워크란 용어는 어떤 목적을 구현하기 위해 여러가지 기능, 툴, 방법이 합쳐진 것이다.

.NET 은 주로 윈도우 플랫폼에서 실행되는 애플리케이션을 개발하기 위해 사용된다.

이를 언급한 이유는 PowerShell 이 .NET 프레임워크를 기반으로 동작 하고 있어 .NET 의 클래스와 메서드를 직접 사용할 수 있게 된다.

명령줄 셸

명령줄 셸은 쉽게 말하면 키보드로 텍스트 형태의 명령어를 입력해서 어떤 동작을 할 수 있도록 해주는 소프트웨어다.

우리가 Windows 에서 네트워크 IP를 확인하기 위해 사용하는 CMD 가 바로 대표적인 명령줄 셸 이다.

참고로 UNIX 및 리눅스는 Bash 란 명령어 셸이 존재한다.

PowerShell 또한 이름에서도 알 수 있듯, 명령줄 셸의 역할을 하고 있다.

사실 이미 GUI 가 갖춰진 요즘의 Windows 환경들에 구 시대적인 방식이라 할 수 있는 명령줄 셸이 계속 유지되는 이유는 여러가지가 있겠지만 다음과 같은 이유로 유지된다 생각이 든다.

먼저 이미 많은 기업과 사용자들이 명령어를 이용한 스크립트, 프로그램을 개발해 사용하고 있어 이런 소프트웨어가 제거 되면 많은 소프트웨어의 수정이 필요 할 수 있다.

또 한, GUI 도 하나의 소프트웨어기 때문에 심각한 손상 등이 발생해 이용할 수 없는 경우에도 시스템 복구, 점검을 위해 CMD 가 필요할 수 있다.

CMD vs PowerShell

그럼 이 CMD와 PowerShell 은 어떤 차이가 있을까?

실제로 사용해 보면 비슷한 명령어를 두 소프트웨어 사용하며 비슷한 사용법을 지니고 있다. 그럼에도 이 둘은 전혀 다른 목적과 기능을 제공한다.

먼저 CMD(Command Prompt) 는 초기부터 제공 된 기본적인 윈도우 환경의 명령줄 인터페이스다. CMD 를 이용하면 DOS 기반의 간단한 명령어를 사용해 CUI 형태로 수행할 수 있다.

현재 Windows는 GUI 를 통해 대부분의 작업을 아이콘, 프로그램을 실행해 이를 확인할 수 있지만, 이를 이용하면 CUI 형태로 여러 작업이 가능하다.

그리고 이 CMD 명령어를 미리 작성해 두어 실행하면 바로 실행 되는 파일이 바로 .bat 파일이다. 예를 들어 우리가 매번 CMD 에 접속해 JVM 이나 Web, WAS 를 명령어로 실행해도 되지만 이를 미리 .bat 파일에 작성해 두어 파일을 실행하면 실행 되게 할 수 있다.

PowerShell 또한 사용 하는 방법은 비슷할 지 모르지만, CMD 가 간단한 기본적인 명령어 (파일 이동, 프로그램의 실행, 시스템 정보 확인 등) 위주로 지원 한다면 PowerShell 은 더욱 강력한 기능을 제공 한다.

정리하자면 PowerShell 은 CMD 가 할 수 있는 모든 작업을 할 수 있지만 CMD 로는 할 수 없는 작업을 할 수 있다.

예로, PowerShell 은 정보를 텍스트가 아닌 객체로 정보를 반환하기 때문에 데이터 조작, 처리에 유용하고 사용자 정의 함수, 모듈 및 스크립트 블록 등을 지원해 코드를 재사용, 모듈화가 가능하지만 CMD 는 이런 것이 없다.

그리고 PowerShell 은 프로그래밍 언어와 같이 REST API와의 통신, 네트워킹 관련 고급 기능 등이 내장 되어 있는데 CMD 는 이런 작업을 수행하기 위해선 추가 도구가 필요하다. (예: tcping.exe IP 와 PORT OPEN 여부 확인하기)

PowerShell 사용하기

PowerShell 은 Windows 환경 기준, 시작 메뉴를 열어 검색하면 기본적으로 설치 되어 있다. 만약, 자신의 PC 및 Server 에서 발견할 수 없다면 다음 MS 공식 사이트에 접속해서 확인해 설치해보자.

Windows에 PowerShell 설치 – PowerShell | Microsoft Learn

MS PowerShell 패키지 설치 공식 사이트

정상적으로 실행 하면 다음 사진과 같이 하나의 창이 생성 된다.

PowerShell 기초 알아보기: 시스템 자동화의 첫걸음

기초적인 PowerShell 명령어

정상적으로 실행 되었다면 하기의 명령어 들을 입력해 보며 자유롭게 사용해 볼 수 있다.

파일 or 폴더 리스트 출력하기

Get-ChildItem -Path C:\경로
PowerShell

텍스트 파일 생성 및 내용 쓰기

"Hello, PowerShell!" > C:\경로\파일명.txt
PowerShell

파일 내용 읽기

Get-Content C:\경로\파일명.txt
PowerShell

컴퓨터 IP 주소 찾기

Get-NetIPAddress
PowerShell

파일 or 폴더 삭제 하기

Remove-Item C:\ExamplePath\unnecessary.txt
PowerShell
0 0 votes
Article Rating
Subscribe
Notify of
guest
0 Comments
Oldest
Newest Most Voted
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x
()
x
목차
위로 스크롤