PowerShell 명령어 가이드
Microsoft 의 PowerShell 은 Windows, macOS, Linux를 모두 지원하며 .NET 기반의 강력한 성능을 갖춘 오픈 소스 차세대 크로스 플랫폼 자동화 및 구성 프레임워크입니다.
- 성능: Windows 전용 버전(5.1)보다 훨씬 빠르고 효율적인 데이터 처리가 가능합니다.
- 호환성: 기존 Windows PowerShell 모듈과 높은 호 환성을 유지하면서 최신 오픈 소스 기술을 결합했습니다.
- 범용성: 서버 관리, 클라우드 운영, 간단한 스크립팅까지 모든 환경에서 표준으로 사용됩니다.
아래 표는 Windows PowerShell 5.1과 PowerShell 7의 주요 차이를 정리한 것입니다.
| 구분 | Windows PowerShell 5.1 | PowerShell 7 (PowerShell Core) |
|---|---|---|
| 기반 플랫폼 | .NET Framework | .NET Core 3.1 (이후 .NET 5 이상) |
| 지원 OS | Windows 전용 | Windows, macOS, Linux 지원 |
| 개발 방식 | 클로즈드 소스 (독점 개발) | 오픈 소스로 공개 개발 |
| 업데이트 | 제한적인 업데이트 (주로 보안 패치) | 지속적인 기능 추가 및 업데이트 |
| 모듈 호환성 | 최신 모듈 일부 미지원 (호환성 제약) | 최신 .NET Core용 모듈과의 호환성 향상 |
| 성능 | 기본 수준 성능 | 일부 작업에서 향상된 성능 (병렬 등) |
설치 방법 (Windows, macOS, Linux)
- Windows: winget install -e --id=Microsoft.PowerShell
- macOS: brew install --cask powershell
- Ubuntu: sudo apt install -y powershell
설치 후 PowerShell 7 실행하기 위해 명령 프롬프트 또는 터미널 에서 pwsh 명령어를 입력합니다.
pwsh
주요 명령어
PowerShell은 명령줄 셸이자 스크립팅 언어로, **명령어(Cmdlet)**의 문법과 사용 방법이 기존의 Windows 명령 프롬프트(cmd)나 리눅스 쉘과 다소 차이가 있습니다.
PowerShell 프롬프트에서 명령어를 실행하는 방법은 다른 셸과 유사하게 명령어 이름을 입력하고 Enter를 치면 됩니다. 단, PowerShell Cmdlet은 대소문자를 구분하지 않으므로 Get-Process나 get-process 모두 동일하게 동작합니다. 또한 **긴 명령 이름은 축약형 별칭(alias)**이 존재하는 경우가 많습니다. 예를 들어 Get-ChildItem 명령은 디렉터리 내용을 나열하는 기능으로, 리눅스의 ls나 Windows의 dir과 유사한 역할인데, PowerShell에서는 ls나 dir 자체를 Get-ChildItem의 **별칭(alias)**으로 미리 제공하여 익숙한 사용자 경험을 제공합니다. 즉, PowerShell에서 ls를 입력하면 내부적으로 Get-ChildItem이 실행되어 현재 폴더의 목록이 출력됩니다. 이처럼 cd(Set-Location), rm(Remove-Item), mkdir(New-Item) 등 많이 쓰이는 명령은 직관적인 별칭을 갖고 있어 편리합니다.
POSIX 표준으로 사용되는 주요 명령어는 다음과 같습니다. 터미널 작업으로 시스템 관리를 자동화하기 위해 기본적으로 알아두어야 하는 명령 어 입니다.
cat # 파일의 내용을 표준 출력(화면)으로 보여줌
cd # 현재 작업 디렉토리를 변경함
cp # 파일 또는 디렉토리를 복사함
diff # 두 파일의 내용 차이를 비교함
echo # 화면에 문자열을 출력함
history # 이전에 실행한 명령어 기록 목록을 보여줌
kill # PID를 이용하여 프로세스를 종료하거나 시그널을 보냄
ls # 현재 위치의 파일과 디렉토리 목록을 나열함
man # 명령어의 사용법(매뉴얼)을 보여줌
mkdir # 새로운 디렉토리를 생성함
mount # 디스크 장치나 파일 시스템을 특정 경로에 연결함
mv # 파일이나 디렉토리를 이동하거나 이름을 변경함
pwd # 현재 작업 중인 디렉토리의 전체 경로를 출력함
rm # 파일 또는 디렉토리를 삭제함
rmdir # 내용이 비어 있는 디렉토리만 삭제함
sleep # 지정한 시간 동안 명령어 실행을 지연(대기)시킴
sort # 텍스트 파일의 내용을 정렬하여 출력함
tee # 출력 내용을 화면에 보여주는 동시에 파일로 저장함
type # 명령어가 쉘 내부 명령어인지, 외부 파일인지 등을 확인함
where # 실행 파일(명령어)의 위치 경로를 찾음
옵션과 출력 형식은 OS/쉘에 따라 차이가 날 수 있음.
cat - 파일 내용 출력
설명 파일의 내용을 표준 출력(stdout)으로 보여줍니다.
주요 옵션
-n: 줄 번호 표시-A: 제어 문자 표시 (Linux/macOS)
예시
cat file.txt
cat -n file.txt
cd - 디렉토리 이동
설명 현재 작업 디렉토리를 변경합니다.
주요 옵션
..: 상위 디렉토리~: 홈 디렉토리
예시
cd /var/log
cd ..
cd ~
cp - 파일/디렉토리 복사
설명 파일 또는 디렉토리를 복사합니다.
주요 옵션
-r: 디렉토리 재귀 복사-i: 덮어쓰기 전 확인-v: 진행 상황 출력
예시
cp a.txt b.txt
cp -r src/ backup/
diff - 파일 차이 비교
설명 두 파일의 차이를 비교합니다.
주요 옵션
-u: unified diff 형식-r: 디렉토리 비교
예시
diff a.txt b.txt
diff -u old.txt new.txt
echo - 문자열 출력
설명 문자열을 출력합니다.
주요 옵션
-n: 줄바꿈 제거
예시
echo "Hello World"
echo -n "No newline"
history - 명령 기록 출력
설명 이전에 실행한 명령 목록을 보여줍니다.
주요 옵션
-c: 기록 삭제 (bash)N: 최근 N개 출력
예시
history
history 20
kill - 프로세스 종료
설명 PID로 프로세스에 시그널을 보냅니다.
주요 옵션
-9: 강제 종료(SIGKILL)-15: 정상 종료(SIGTERM)
예시
kill 1234
kill -9 1234
ls - 디렉토리 목록
설명 파일과 디렉토리를 나열합니다.
주요 옵션
-l: 상세 정보-a: 숨김 파일 포함-h: 사람이 읽기 쉬운 크기
예시
ls
ls -la
man - 매뉴얼 페이지
설명 명령어의 공식 설명서를 표시합니다.
주요 옵션
-k: 키워드 검색
예시
man ls
man -k network