5.x 라고 했으나, MS사가 Windows PowerShell의 버전을 5.1로 동결하고
이후의 버전( 6+)은 PowerShell (현재의 Major version은 7임)로 분리한 상태임.
- 실행파일도 powershell.exe 와 pwsh.exe 로 완전히 다름.
기능 개선이 되어야 minor version이 올라가는데, Windows버전 향상이나 보안패치에 따른 micro-version(or patch) 증가만 이루어지게 됨: 즉, Windows PowerShell은 5.1 이 고정이라고 보면 된다.
Windows PowerShell은
기능 개발 관점에서는 EOL (End Of Life) 상태이나
Windows OS의 구성요소라
Retired는 아닌 상태임.
스샷은 PowerShell 5.1 (Win11)에 Oh-My-Posh를 사용한 Windows Terminal에서 이루어짐:
2023.06.20 - [개발환경] - [Env] Oh-My-Posh
[Env] Oh-My-Posh
Oh-My-Posh는 Command Line Interface(cli)에서 prompt 부분을 customize할 수 있게 해주는 custom prompt engine이다.유사한 것으로는 Oh-My-Zsh 이 있음 (사실 oh-my-zsh이 먼저고 이를 bash등에서 가능하도록 만들어준 것
ds31x.tistory.com
2023.09.05 - [utils] - [Util] Windows Terminal - wt
[Util] Windows Terminal - wt
2019년 Microsoft사에서 공개한 Open-Source SW.기존의 Windows의 기본 터미널인 command prompt의 불편함을 개선하기 위해 개발되었음.wsl과 powershell, 그리고 command prompt를 통합하여 사용할 수 있는 terminal applic
ds31x.tistory.com
semantic versioning에 대해선 다음을 참고:
2024.09.19 - [Python] - [Etc] SW Version: Semantic Versioning + packaging.version
[Etc] SW Version: Semantic Versioning + packaging.version
1. Semantic Versioning SystemSemantic Versioning (SemVer) 시스템에 따라,소프트웨어에서 major와 minor, patch (or micro) 버전을 구분하여 버전을 매김.Python에서는 PEP 440 에서 버전 표기 방식을 지정하고 있으며 SemVe
ds31x.tistory.com
man
- get-help의 alias
- 도움말. Linux의 man과 유사.
- 알고자 하는 명령어를 다음 인자로 넘겨주면 됨.

pwd
- get-location의 alias
- Print Working Directory, present working directory
- 현재 작업 디렉토리의 path(경로)를 출력함

clear
- clear-host의 alias
- 현재 화면을 지움. cmd의 cls와 유사함.
ls
- get-childitem의 alias
- get-childitem 은 기본으로 "현재 디렉토리의 바로 밑의 항목" 만을 보여줌.
- get-childitem 은 Linux에서 자주 사용되는 find 의 역할도 가능하며 이는 ls 일 때와 달리 기본으로 재귀적으로 동작함.
- list
- 현재 경로에 있는 파일과 디렉토리를 보여줌.
- 뒤에 인자로 보고자 하는 디렉토리의 path를 인자로 넘겨주면 해당 디렉토리에 대해 보여줌.
- linux의 ls와 유사하나, option이 다름.
옵션
- -name : 경로에 있는 파일과 디렉토리의 이름만 보여줌.
- -file : 경로에 있는 파일만 보여줌.
- -directory : 경로에 있는 디렉토리만 보여줌.
- -filter : 정규표현식 지원함.
- -force : 숨김파일까지 보여줌.
get-childitem:
get-childitem에 대해서 자세한 건 다음을 참고:
2026.01.03 - [utils/cmd and powershell] - get-childitem : find 의 powershell 버전
get-childitem : find 의 powershell 버전
Get-ChildItem (Linux find 의 PowerShell 버전)PowerShell에서 파일 시스템을 재귀적으로 탐색하며 조건에 맞는 항목을 찾는(find) 핵심 cmdlet.list ls라는 alias를 가지고 있음: 이 경우 -recurse라는 옵션이 빠져서
ds31x.tistory.com
cat
- get-content의 alias
- text 파일등의 내용 출력에 사용됨.

Windows PowerShell은 utf-16le를 기본 encoding으로 삼고 있기 때문에,
utf-8로 인코딩 된 파일을 읽는 경우는 다음과 같이 -encoding utf8을 지정해줘야 함.

2023.09.30 - [Linux] - [Linux] 파일 내용확인하기: cat, bat, less, more, head, tail
[Linux] 파일 내용확인하기: cat, bat, less, more, head, tail
cat, bat, head, tail대표적인 text processing utilities로 file viewing commands라고도 불림.less, morepager라고 불리는 utilities로 긴 출력을 화면에 페이지 단위로 나누어 보여주는 역할을 수행함.cat, batcat (concatenate
ds31x.tistory.com
cp
- copy-item의 alias
- copy
- file이나 directory를 복사함.

비어있지 않은 디렉토리를 복사하는 경우엔 -recuse 옵션이 있어야 동작함.
숨김파일이나 읽기 전용 파일을 포함하여 복사하려면 -force 옵션이 필요.
symbolic link를 원본으로 대체하여 복사하려면 -FollowSymlink 옵션을 사용 (안전하게 백업하려면)
rm
- remove-item의 alias
- remove
- 뒤에 인자로 넘겨지는 경로의 파일을 삭제.
- linux에선 -r 옵션을 주면 내부에 파일이나 서브디렉토리를 가지고 있는 디렉토리도 삭제 가능함.
- Windows PowerShell에선 디렉토리를 제거할 경우, 하위항목을 지울지를 물어봄.

만약 디렉토리를 rm으로 삭제시 -recurse 옵션을 추가할 경우엔 하위항목을 재귀적으로 지우겠다는 뜻이므로 물어보지 않고 삭제함.

mv
- move-item의 alias
- file이나 directory를 이동시키거나 새로운 이름으로 변경.
cd
- set-location 의 alias
- change directory
- 뒤에 인자로 넘겨진 path로 이동함.

mkdir
- new-item의 alias: 정확히는 new-item -itemtype Directory 의 alias임.
- mak directory.
- 뒤에 넘겨지는 인자에 해당하는 디렉토리 생성.
- Linux 등 Unix 계열 환경에서는 -p 옵션을 지정해야
존재하지 않는 상위 디렉토리까지 함께 생성할 수 있음. - 반면 PowerShell에서는 별도의 -p 옵션을 지정하지 않아도,
지정한 경로에 포함된 모든 상위 디렉토리를 자동으로 생성함.
- Linux 등 Unix 계열 환경에서는 -p 옵션을 지정해야

rmdir
- remove-item 의 alias
- 뒤에 넘겨지는 인자에 해당하는 디렉토리 삭제.

만약, 지우고자 하는 directory 안에 파일이 있는 경우엔 하위항목을 지울지 등에 대해 물어본다: 이게 싫으면 -recurse 옵션을 이용.
(rm 과 같이 remove-item이기 때문임)

get-command
- cmd의 where, linux shell의 which에 해당함.
- 뒤에 인자로 주어지는 명령어의 위치를 보여줌.

new-item
- linux의 touch 와 유사함.
- 뒤에 인자로 넘겨진 path에 empty file을 생성함.
- 디렉토리 생성에도 사용가능함: -itemtype Directory 를 인자로 넘겨주면 됨.
echo
- write-output 의 alias
- 뒤에 인자로 주어진 문자열을 stdout으로 출력.
- redirct > 나 >> 를 사용하면 새로운 파일을 만들면서 내용도 추가해 줄 수 있음.

select-string - grep의 PowerShell 버전
- 텍스트에서 문자열 패턴을 검색하는 PowerShell cmdlet임.
- cmd의 findstr, Linux 의 grep에 해당함.
- 파일을 직접 읽어 검색할 수도 있고,
- Get-Content, Get-Process 등에서 파이프로 전달된 텍스트 스트림을 대상으로 검색할 수도 있음.
검색 결과는 단순 문자열이 아니라 매치 정보가 포함된 객체로 반환된다는 점이 핵심적인 특징임.
Select-String [-Path] <파일경로> -Pattern <문자열 또는 정규식>
- -Pattern은 찾고자 하는 문자열(또는 정규식)을 의미하며,
- -Path는 검색 대상 파일 또는 파일 목록을 지정함.
간단한 예는 다음과 같음:
# error라는 문자열이 포함된 줄 검색
Select-String -Path app.log -Pattern "error"
# 정규식으로 숫자 3자리 검색
Select-String -Path data.txt -Pattern '\d{3}'
# 대소문자 구분 없이 TODO 검색
Select-String *.ps1 -Pattern 'todo'
# 특정 패턴이 없는 줄만 출력
Select-String config.ini -Pattern '^#' -NotMatch
출력결과가 객체이므로 다음의 후처리가 가능
Select-String은 단순 문자열이 아니라 다음 정보를 포함한 객체를 반환함.
- 파일 경로 (Path)
- 줄 번호 (LineNumber)
- 실제 텍스트 (Line)
- 매치 정보 (Matches)
따라서 다음과 같이 반환된 결과 객체에 대해 후처리가 가능함.
Select-String "error" log.txt | Select-Object LineNumber, Line
자주 쓰는 옵션
-Pattern (검색 패턴)
Select-String -Pattern "error" -Path log.txt
- 검색할 문자열 또는 정규식을 지정함.
- PowerShell의 정규식 엔진을 사용하므로 ^, $, .* 같은 패턴도 사용 가능함.
-Path (검색 대상 파일)
Select-String -Pattern "TODO" -Path *.py
- 검색할 파일을 지정함.
- 와일드카드(*, ?) 사용이 가능하여 여러 파일을 한 번에 검색할 수 있음.
-CaseSensitive (대소문자 구분)
Select-String -Pattern "Error" -Path log.txt -CaseSensitive
- 기본적으로 Select-String은 대소문자를 구분하지 않음.
- 이 옵션을 지정하면 정확히 일치하는 대소문자만 검색함.
-NotMatch (패턴을 포함하지 않는 줄 검색)
Select-String -Pattern "^#" -Path script.ps1 -NotMatch
- 패턴에 일치하지 않는 줄만 반환함.
- 주석이 아닌 코드 줄만 추려낼 때 자주 사용됨.
-SimpleMatch (정규식 비활성화)
Select-String -Pattern "." -Path file.txt -SimpleMatch
- 기본적으로 -Pattern은 정규식으로 해석됨.
- -SimpleMatch를 사용하면 정규식이 아닌 순수 문자열 비교로 동작함.
-Context (앞뒤 줄 함께 출력)
Select-String -Pattern "Exception" -Path app.log -Context 2,3
- 매칭된 줄의 앞 2줄, 뒤 3줄을 함께 출력함.
- 로그 분석 시 원인 파악에 매우 유용함.
파이프라인과 함께 사용
Get-Content log.txt | Select-String "error"
- Get-Content로 읽은 텍스트 스트림을 받아 검색함.
Linux의 cat log.txt | grep error와 동일한 개념임.
clipboard와 함께 사용: Set-Clipboard, Get-Clipboard
set-clipboard : Set-Clipboard는 파이프라인으로 전달된 객체 또는 -Value로 지정된 값을 Windows 클립보드에 복사하는 cmdlet.
get-clipboard : Windows 클립보드에 저장된 내용을 PowerShell에서 문자열(또는 Raw 데이터)로 반환하는 cmdlet.

2025.12.29 - [shell] - iconv, clip.exe, pbcopy, xclip
iconv, clip.exe, pbcopy, xclip
iconviconv는 Linux(및 유닉스 계열 시스템)에서 텍스트를 한 문자 인코딩에서 다른 문자 인코딩으로 변환하는 표준 유틸리티임.Converts text from one encoding to another encoding. 참고로 iconv는 Windows 네이티브
ds31x.tistory.com
Environment Variable (환경변수 설정)
주로 $env:변수명=변수값 을 이용한다.
다음 URL에서 PowerShell 관련 내용을 참고할 것: 2023.06.20 - [개발환경] - [Env] Environment Variable (환경변수)
[Env] Environment Variable (환경변수)
정의Environment variable (환경변수) 란,OS나 SW에서 참조하는 변수들로OS나 SW가 동작 (or 실행)에 영향을 주는 값을 가짐.shell script 나 software들이 각 장비의 환경에 맞게 동작할 수 있도록 해 줌.종류Envr
ds31x.tistory.com
같이보면 좋은 자료들
2023.06.28 - [개발환경] - [Env] PowerShell v7.3.5
[Env] PowerShell v7.3.5
잡담wsl을 사용하면서 powershell을 쓸 일이 많이 줄었지만... 그래도 간간히 필요하고, 아예 손을 놔버리면 그나마 익숙치 않은데 더 안 좋아지는 터라...노트북의 powershell을 업데이트했다. 주의할
ds31x.tistory.com
2025.12.31 - [shell] - PowerShell의 초기화-profile
PowerShell의 초기화-profile
PowerShell의 profile이란?PowerShell의 profile은셸이 시작될 때 자동으로 실행되어환경 변수, alias, 함수, 초기화 코드 등을 설정하는시작 스크립트(확장자 .ps1 파일).PowerShell은 상황에 따라 서로 다른 prof
ds31x.tistory.com
update-help 문제점 해결방법: icantevenplop 님의 글을 참고(2026.1 현재 6년전 글임...)
Reddit의 PowerShell 커뮤니티: Microsoft의 깨진 PowerShell 모듈 HelpInfoURI 및 Update-Help의 여러 해
PowerShell 커뮤니티에서 이 게시물을 비롯한 다양한 콘텐츠를 살펴보세요
www.reddit.com
2024.05.20 - [utils/cmd and powershell] - [cmd] command prompt 연습하기 (file, dir 사용하기)
[cmd] command prompt 연습하기 (file, dir 사용하기)
CMD 프롬프트 기초 튜토리얼: 파일 및 디렉토리 다루기1. CMD 프롬프트 열기Windows 키 + R을 눌러 실행 창을 엽니다.cmd를 입력하고 Enter를 누릅니다.기본적으로 현재 User의 home 디렉토리를 cwd (current wo
ds31x.tistory.com
2024.05.20 - [shell] - [Bash] File과 directory 관련 command
[Bash] File과 directory 관련 command
Bash에서 파일과 디렉토리 관련 명령어 튜토리얼이 문서는 비어있는 디렉토리에서 시작하여 파일과 디렉토리를 생성하고, 삭제하는 과정을 단계별로 설명하는 일종의 튜토리얼임. terminal에서 각
ds31x.tistory.com
'utils > cmd and powershell' 카테고리의 다른 글
| get-childitem : find 의 powershell 버전 (0) | 2026.01.03 |
|---|---|
| Windows에서 Oh-My-Posh 설치하기 (0) | 2025.10.11 |
| [cmd] comp 명령어 (0) | 2024.05.20 |
| [cmd] command prompt 연습하기 (file, dir 사용하기) (0) | 2024.05.20 |