IT 기술 문서


2025.02.16 17:52

Windows PowerShell & Linux Bash 명령어 비교 및 활용법

  • it33 26일 전 2025.02.16 17:52
  • 39
    0

alt text

PowerShell과 Bash의 차이점과 실무에서의 활용법

Windows PowerShell과 Linux Bash는 각각 윈도우와 리눅스 환경에서 널리 사용되는 명령어 인터프리터입니다. 두 환경에서 명령어를 실행하는 방식이 다르며, 각기 다른 스크립트 작성 방식과 기능을 제공합니다. 이번 포스팅에서는 PowerShell과 Bash의 주요 차이점과 실무에서의 활용법을 정리해 보겠습니다.


1. PowerShell과 Bash의 개요 및 차이점

1-1. PowerShell 개요

  • Windows에서 기본 제공하는 명령어 인터프리터

  • 객체 지향 방식으로 데이터를 다룸

  • .ps1 확장자를 가진 스크립트 사용

  • .NET FrameworkCMDLET(명령 집합)을 기반으로 작동

1-2. Bash 개요

  • 리눅스 및 macOS에서 주로 사용되는 쉘 환경

  • 텍스트 기반 데이터 스트림을 처리하는 방식

  • .sh 확장자를 가진 스크립트 사용

  • 대부분의 유닉스 계열 운영체제에서 기본 제공됨

1-3. PowerShell vs. Bash 비교 표

비교 항목

PowerShell

Bash

운영체제

Windows (기본 제공), Linux/Mac 지원

Linux, macOS (기본 제공), Windows 지원

데이터 처리 방식

객체 지향(Object-Based)

텍스트 기반(Text-Based)

스크립트 확장자

.ps1

.sh

명령어 구조

cmdlet (Get-Process, Get-Service 등)

리눅스 기본 명령어 (ls, grep, awk 등)

파이프라인 기능

객체 기반 데이터 전달 가능

텍스트 스트림 기반 전달

루프 및 조건문

if, foreach, switch

if, for, while


2. 기본적인 명령어 비교

2-1. 파일 및 디렉터리 관리

기능

PowerShell 명령어

Bash 명령어

현재 디렉터리 확인

Get-Location

pwd

디렉터리 목록 조회

Get-ChildItem

ls

디렉터리 이동

Set-Location C:\Users

cd /home/user

새 디렉터리 생성

New-Item -ItemType Directory -Path C:\Users\NewFolder

mkdir /home/user/newfolder

파일 삭제

Remove-Item file.txt

rm file.txt

파일 복사

Copy-Item file.txt -Destination C:\Backup

cp file.txt /backup/


2-2. 시스템 정보 확인

기능

PowerShell 명령어

Bash 명령어

현재 사용 중인 프로세스 확인

Get-Process

ps aux

실행 중인 서비스 목록 조회

Get-Service

systemctl list-units --type=service

네트워크 설정 확인

Get-NetIPAddress

ifconfig 또는 ip a

디스크 사용량 확인

Get-PSDrive

df -h


3. 스크립트 작성 및 자동화

3-1. PowerShell 스크립트 예제 (Windows)

PowerShell을 활용하면 .ps1 확장자를 가진 스크립트를 만들어 자동화할 수 있습니다.

# 특정 폴더의 파일 목록을 가져와서 텍스트 파일로 저장하는 스크립트
$files = Get-ChildItem C:\Users\Documents
$files | Out-File C:\Users\Documents\file_list.txt

위 스크립트는 C:\Users\Documents 폴더 내의 파일 목록을 가져와 file_list.txt로 저장하는 역할을 합니다.

3-2. Bash 스크립트 예제 (Linux/macOS)

Bash 스크립트는 .sh 확장자로 저장하며, 실행 권한을 부여해야 합니다.

#!/bin/bash
# 홈 디렉터리의 파일 목록을 가져와서 저장하는 스크립트
ds=$(date +%Y-%m-%d)
ls ~ > ~/file_list_$ds.txt

이 스크립트는 홈 디렉터리의 파일 목록을 가져와 날짜를 포함한 파일 이름으로 저장합니다.

실행 권한을 부여한 후 실행합니다:

chmod +x script.sh
./script.sh

4. 실무에서의 활용 예시

4-1. 네트워크 자동화

PowerShell과 Bash를 활용하여 네트워크 환경을 점검할 수 있습니다.

PowerShell (Windows):

# 특정 IP에 핑을 보내 네트워크 상태 확인
Test-Connection -ComputerName google.com -Count 4

Bash (Linux/macOS):

# 특정 IP에 핑을 보내 네트워크 상태 확인
ping -c 4 google.com

4-2. 로그 파일 분석 및 처리

PowerShell과 Bash를 활용하여 로그 파일을 분석할 수 있습니다.

PowerShell (Windows):

# 특정 로그 파일에서 오류 메시지만 필터링
Select-String -Path C:\Logs\server.log -Pattern "ERROR"

Bash (Linux/macOS):

# 특정 로그 파일에서 오류 메시지만 출력
grep "ERROR" /var/log/syslog

5. PowerShell과 Bash 중 어떤 것을 선택해야 할까?

PowerShell이 적합한 경우

  • Windows 서버 및 시스템 관리

  • .NET 기반 응용 프로그램 자동화

  • 객체 기반 데이터 처리가 필요한 경우

Bash가 적합한 경우

  • 리눅스 서버 및 클라우드 인프라 관리

  • 네트워크 및 배포 자동화 스크립트 작성

  • 텍스트 기반 데이터 처리 작업 수행

각 환경에 맞는 명령어를 익히고 활용하면 윈도우와 리눅스 시스템을 더욱 효율적으로 관리할 수 있습니다.

실무에서 두 환경을 동시에 사용해야 하는 경우 PowerShell과 Bash의 차이를 이해하고 적절히 활용하는 것이 중요합니다.

  • 공유링크 복사