Step 1. 파워쉘 첫걸음 — 글자로 컴퓨터 조종하기
Level 0 — 컴퓨터 조작과 구조의 이해 | 난이도 ★☆☆☆☆ | 예상 소요 시간 2~3시간
전제: 없음. 윈도우 컴퓨터 한 대만 있으면 됩니다. 이 책의 진짜 첫 페이지입니다.
- 준비물: 윈도우 PC, 키보드, 그리고 겁먹지 않기로 한 마음.
- 안전: 오늘 나오는 모든 실습은 100% 안전합니다. 읽기·이동 명령뿐이라 컴퓨터가 망가질 일이 없습니다.
- 화면 차이: 윈도우 10/11, 파워쉘 버전, 언어 설정에 따라 출력이 책과 조금씩 다를 수 있습니다. 핵심만 맞으면 됩니다.
- 자세: 이해가 안 돼도 괜찮으니, 나오는 명령은 전부 직접 쳐 보세요. 읽기만 하면 절대 몸에 배지 않습니다. 그리고 오타로 에러가 나는 것은 실패가 아니라 수업료입니다 — 빨간 글씨가 떠도 컴퓨터는 망가지지 않습니다.
지금 당신이 컴퓨터를 다루는 방법은 이렇습니다. 폴더 아이콘을 더블클릭하고, 파일을 드래그하고, 버튼을 누릅니다. 이걸 GUI(그래픽 사용자 인터페이스)라고 부릅니다. 그런데 이 책이 가르칠 세계 — 서버 관리, 해킹, 보안 분석 — 에서는 GUI가 없거나 쓸모없는 경우가 대부분입니다. 회사 서버에는 그래픽 화면이 없고, 침투 테스트에서 접속 권한을 얻으면 나타나는 것도 텍스트 터미널입니다. 그래서 오늘부터 우리는 CLI(명령줄 인터페이스, Command Line Interface) — 글자로 컴퓨터를 조종하는 방식 — 를 배웁니다. 첫 도구는 윈도우에 이미 깔려 있는 파워쉘(PowerShell)입니다.
1. 학습 목표
이 챕터를 끝내면 다음을 할 수 있습니다:
- 파워쉘을 열고 프롬프트에서 현재 위치를 읽는다
Get-Location,Get-ChildItem으로 "내가 어디 있는지, 여기에 뭐가 있는지" 확인한다cd로 상대경로와 절대경로 두 방식 모두로 이동한다- 공백이 든 경로를 따옴표로 올바르게 처리한다
- Tab 자동완성과 ↑ 키로 타이핑을 줄인다
오늘의 목표를 한 문장으로 말하면: 탐색기(GUI)를 열지 않고, 명령어만으로 컴퓨터 안을 돌아다니며 "내가 어디 있는지, 여기에 뭐가 있는지"를 알아낼 수 있다.
2. 배경 지식 — 오늘의 도구와 개념
오늘의 도구 한눈에 보기
| 구분 | 내용 |
|---|---|
| 언어·환경 | 파워쉘(PowerShell) — 윈도우에 기본 설치된 쉘. 설치할 것 없음 |
| 오늘의 명령어 | Get-Location(=pwd), Get-ChildItem(=ls, dir), cd 경로 |
| 오늘의 기술 | Tab 자동완성, ↑ 키로 이전 명령 불러오기 |
| 필요한 개념 | CLI vs GUI, 터미널과 쉘, 프롬프트, 디렉터리 트리, 절대경로와 상대경로, 따옴표 규칙 |
2-1. 터미널과 쉘, 그리고 파워쉘
용어부터 정리합니다 (헷갈리기 쉬워서):
- 터미널(terminal): 명령을 입력하는 "창" (검은 화면 자체)
- 쉘(shell): 그 안에서 명령을 해석하고 실행해 주는 프로그램 (번역기)
- 파워쉘: 마이크로소프트가 만든 쉘의 이름
식당 비유: 터미널은 "주문서", 쉘은 "주방". 당신은 주문서에 글자를 쓰고(명령 입력), 주방이 그걸 읽고 요리를 납니다(결과 출력). 오늘 우리가 열 건 "파워쉘이라는 주방이 딸린 터미널 창"입니다.
2-2. 디렉터리 트리 — 컴퓨터 안의 지도
컴퓨터 안의 파일들은 폴더 안의 폴더 안의 폴더 구조로 저장되어 있습니다. 이걸 거꾸로 세운 나무(트리)에 비유합니다:
C:\ ← 뿌리(루트). 모든 것의 출발점
├── Users\ ← 사용자들의 집
│ └── Lee\ ← 내 집 (사용자 이름마다 다름)
│ ├── Documents\ ← 문서
│ ├── Downloads\ ← 다운로드
│ └── Desktop\ ← 바탕화면
├── Windows\ ← 운영체제 본체
└── Program Files\ ← 설치된 프로그램들
CLI로 "이동한다"는 건 이 나무의 가지를 타고 오르내리는 겁니다.
2-3. 절대경로와 상대경로 — 주소 쓰는 두 가지 방법
파일이나 폴더의 위치를 적는 방법이 두 가지입니다:
| 종류 | 뜻 | 예 |
|---|---|---|
| 절대경로 | 뿌리(C:\)부터 전부 쓰는 완전한 주소 |
C:\Users\Lee\Documents |
| 상대경로 | "지금 있는 곳" 기준으로 쓰는 약식 주소 | Documents (지금이 C:\Users\Lee일 때) |
집 주소로 비유하면: 절대경로는 "대한민국 서울시 강남구…"처럼 처음부터 쓰는 것, 상대경로는 "여기서 두 블록 올라가서 우회전"처럼 지금 위치 기준입니다.
상대경로에서 쓰는 특수 기호 두 개:
..: 한 단계 위 폴더 (부모 폴더).: 지금 있는 폴더 (거의 안 쓰이지만 알아두세요)
3. 따라 하기 — 드디어 손을 움직입니다
3-1. 파워쉘 열기
- 키보드의
윈도우 키를 누릅니다 (시작 메뉴가 열립니다). - 그 상태로 그냥
powershell이라고 타이핑합니다. (검색창을 클릭할 필요 없이, 시작 메뉴가 열리면 바로 치면 검색됩니다.) - 목록에 Windows PowerShell이 뜨면
Enter.
파란색(또는 검은색) 창이 열리고 이런 문구가 보입니다:
Windows PowerShell
Copyright (C) Microsoft Corporation. All rights reserved.
PS C:\Users\Lee>
맨 아랫줄이 핵심입니다. PS C:\Users\Lee> 를 이렇게 읽습니다:
"파워쉘(PS)이, 지금 C:\Users\Lee 위치에서, 명령을 기다리고 있다(>)."
이 줄을 프롬프트(prompt)라고 부릅니다. 앞으로 이 책에서 "프롬프트를 확인하세요"라고 하면 이 줄의 경로 부분을 보라는 뜻입니다. 이 줄이 당신의 "현재 위치 표시등"입니다. CLI에서 길을 잃지 않는 비결은 명령을 칠 때마다 이 줄을 보는 습관 하나뿐입니다.
참고: 사용자 이름이 Lee가 아니면 당연히 다른 경로가 뜹니다. 이 책의 모든
Lee는 당신의 사용자 이름으로 바꿔 읽으세요.
3-2. 첫 명령 — 나는 어디에? Get-Location
이제 명령을 쳐 봅시다. 아래를 정확히 따라 치고 Enter:
Get-Location
결과:
Path
----
C:\Users\Lee
"너는 지금 C:\Users\Lee에 있다"고 컴퓨터가 대답했습니다. 방금 당신은 컴퓨터에게 명령을 내리고 대답을 받았습니다. 이게 CLI의 전부입니다 — 묻고, 답받고.
파워쉘 명령어는 동사-명사 형태입니다. Get-Location = "얻어라(Get), 위치를(Location)". 이 규칙 덕분에 나중에 명령을 처음 봐도 뜻을 추측할 수 있습니다.
약어: 같은 뜻의 짧은 명령이 있습니다.
pwd
같은 결과가 나옵니다. pwd는 "Print Working Directory"의 약자로, 리눅스에서 온 이름입니다. 파워쉘은 친절하게도 이런 별명(별칭, alias)을 여럿 알아듣습니다. 이 책에서는 정식 이름과 약어를 섞어 씁니다.
3-3. 여기에 뭐가 있나? — Get-ChildItem
Get-ChildItem
결과 (당신의 화면과 다를 수 있습니다 — 정상입니다):
디렉터리: C:\Users\Lee
Mode LastWriteTime Length Name
---- ------------- ------ ----
d----- 2026-09-01 오후 3:20 Desktop
d----- 2026-09-01 오후 3:20 Documents
d----- 2026-09-02 오전 9:15 Downloads
...
결과 읽는 법 — 이 표를 읽을 줄 알아야 합니다:
- 맨 위
디렉터리: C:\Users\Lee— "지금 보여 주는 곳은 여기다" (영문 윈도우에서는Directory:로 표시됩니다) Mode의d-----— 맨 앞이d면 폴더(directory),-로 시작하면 파일LastWriteTime— 마지막으로 수정된 시각Name— 이름
즉 지금 내 집(C:\Users\Lee)에는 Desktop, Documents, Downloads 같은 폴더들이 있다는 뜻입니다. 탐색기에서 내 폴더를 연 것과 같은 정보입니다 — 마우스 클릭 없이 얻었다는 게 다릅니다.
약어: ls와 dir도 같은 일을 합니다.
ls
같은 결과가 나옵니다. (리눅스 사용자를 위한 별명이 ls, 옛날 도스 사용자를 위한 별명이 dir. 셋 중 편한 걸 쓰면 됩니다. 이 책에서는 ls를 자주 씁니다 — 나중에 리눅스에서 그대로 쓰이거든요.)
3-4. 이동하기 — cd
cd(Change Directory)가 이동 명령입니다. 문서 폴더로 가 봅시다:
cd Documents
아무 결과도 안 나옵니다. CLI에서는 "아무 말 없음"이 "성공"인 경우가 많습니다. (실패하면 시끄럽게 빨간 글씨가 뜹니다.) 대신 프롬프트를 보세요:
PS C:\Users\Lee\Documents>
경로가 ...\Documents로 바뀌었습니다 — 이동 성공. 확인 차:
pwd
C:\Users\Lee\Documents
문서 폴더에 뭐가 있는지 봅시다:
ls
(당신의 문서 폴더 내용이 나옵니다. 비어 있으면 아무것도 안 나옵니다.)
이제 한 단계 위로 돌아갑니다. 특수 기호 ..(한 단계 위) 사용:
cd ..
pwd → C:\Users\Lee
Documents에서 한 단계 위인 내 집으로 돌아왔습니다.
3-5. 절대경로로 점프하기
이번엔 상대경로가 아니라 처음부터 끝까지 전부 쓰는 절대경로로 한 번에 이동해 봅시다. (사용자 이름은 본인 것으로 바꾸세요.)
cd C:\Users\Lee\Downloads
pwd → C:\Users\Lee\Downloads
어디에 있든 상관없이 한 방에 이동했습니다. 이게 절대경로의 힘입니다 — "지금 위치"와 무관하게 항상 같은 주소.
예측해 보기: 지금 Downloads에 있습니다. 이때
cd ..\Documents를 치면 어디로 갈까요? ① 생각해 보고 → ② 직접 쳐서 → ③pwd로 확인하세요.
(정답:..로 한 단계 위인C:\Users\Lee로 간 뒤 Documents로 들어가니,C:\Users\Lee\Documents.)
3-6. 공백이 든 경로 — 따옴표의 규칙
이번엔 일부러 에러를 만들어 봅시다. 이렇게 쳐 보세요:
cd C:\Program Files
결과 (실측 메시지, 한글 윈도우 기준):
Set-Location : 'Files' 인수를 사용하는 위치 매개 변수를 찾을 수 없습니다.
위치 줄:1 문자:1
+ cd C:\Program Files
+ ~~~~~~~~~~~~~~~~~~~
영문 윈도우라면 A positional parameter cannot be found that accepts argument 'Files'.라는 뜻의 영어 메시지가 뜹니다.
에러를 읽는 법을 배우는 시간입니다. 빨간 글씨는 무섭지만, 내용은 친절합니다: "’Files’라는 인수를 받을 자리가 없다." 어? Files가 왜 따로 불렸을까요?
파워쉘은 공백(띄어쓰기)을 "입력의 구분"으로 봅니다. 그래서 cd C:\Program Files를 "cd 명령 + C:\Program + Files" 이렇게 세 조각으로 이해해 버립니다. cd는 목적지를 하나만 받는데 두 개(C:\Program과 Files)가 들어왔으니, 초과분인 Files를 두고 항의하는 겁니다.
해결법: 공백이 든 경로는 따옴표로 감싸서 "이건 한 덩어리다"라고 알려 줍니다.
cd "C:\Program Files"
pwd → C:\Program Files
이번엔 성공입니다. "경로에 공백이 있으면 따옴표" — 오늘 외울 몇 안 되는 규칙 중 하나입니다.
돌아옵시다:
cd C:\Users\Lee
(또는 집이 어디든 cd $HOME이라고 치면 내 홈으로 갑니다. 신기한 약속이니 한번 쳐 보세요.)
3-7. 타이핑을 줄이는 두 가지 기술
CLI 고수들이 타이핑을 적게 하는 비결:
① Tab 자동완성 — 명령을 다 치지 마세요.
cd Doc[TAB]
Doc까지 치고 Tab 키를 누르면 파워쉘이 .\Documents\처럼 나머지를 완성해 줍니다. 비슷한 이름이 여러 개면 Tab을 연타하며 순환합니다. 오타의 대부분은 자동완성으로 예방됩니다.
② 위쪽 화살표(↑) — 이전에 쳤던 명령이 불러와집니다. ↑를 몇 번 눌러 아까 쳤던 Get-ChildItem을 찾아 Enter로 재실행해 보세요. "아까 그 긴 명령 또 치기"가 없어집니다.
4. 미션과 연습문제
미션 — CLI 복습마라톤
아무 도움 없이, 오늘 배운 명령만으로 다음을 수행하세요. (모르면 위로 스크롤하지 말고, 먼저 기억을 짜내 보세요. 그게 실력입니다.)
- 현재 위치를 확인하세요.
C:\(최상위, 뿌리)로 이동하세요. (힌트:cd \)- 거기서
ls를 쳐서 윈도우의 뿌리에 어떤 폴더들이 있는지 관찰하세요.Windows,Program Files,Users가 보이나요? — 이게 당신 컴퓨터의 최상위 지도입니다. - 절대경로로 한 방에 내
Documents로 이동하세요. cd ..를 두 번 써서C:\까지 갔다가, 이번엔cd $HOME으로 집에 돌아오세요.- 마지막으로: 오늘 쳤던 명령 중 기억나는 것 세 개를 종이(또는 메모장)에 적으세요. 쓰면서 "이게 뭐 하는 거였지?"를 소리 내서 말해 보세요. 말이 나오면 진짜 아는 겁니다.
연습문제
문제 1. 당신은 지금 C:\Users\Lee에 있습니다. Downloads 폴더로 가는 방법을 절대경로와 상대경로 두 가지로 써 보세요.
문제 2. C:\Users\Lee\Downloads에 있을 때, cd ..를 두 번 치면 어디에 도착할까요?
문제 3. 다음 명령은 왜 실패할까요? 그리고 고쳐 보세요.
cd C:\Program Files\Common Files
문제 4. Get-ChildItem 결과에서 Mode가 -a----로 시작하는 줄은 폴더일까요, 파일일까요?
5. 모범 답안과 완료 기준
미션 해설
1번 pwd, 2번 cd \, 3번 ls, 4번 cd C:\Users\Lee\Documents(본인 이름으로), 5번 cd .. 두 번 후 cd $HOME. 3번에서 보이는 폴더들(Windows, Program Files, Users)이 당신 컴퓨터의 최상위 지도입니다. 6번은 꼭 소리 내서 말해 보세요 — 말이 나오면 진짜 아는 겁니다.
연습문제 해답
문제 1 해답.
- 절대경로:
cd C:\Users\Lee\Downloads - 상대경로:
cd Downloads
문제 2 해답. C:\Users입니다. cd .. 한 번에 C:\Users\Lee, 두 번에 C:\Users로 갑니다. 헷갈리면 직접 치고 pwd로 확인해 보세요 — 확인하는 것도 실력입니다.
문제 3 해답. 공백이 두 번 들어가서 파워쉘이 경로를 여러 조각으로 오해하기 때문입니다. 따옴표로 감싸면 됩니다:
cd "C:\Program Files\Common Files"
문제 4 해답. 파일입니다. 맨 앞 글자가 d면 폴더(directory), -면 파일입니다.
완료 기준 체크리스트
- [ ] 파워쉘을 검색해서 열 수 있다
- [ ] 프롬프트에서 현재 위치를 읽을 수 있다
- [ ]
pwd,ls로 위치와 내용물을 확인할 수 있다 - [ ]
cd로 상대경로/절대경로 이동을 둘 다 할 수 있다 - [ ] 공백 든 경로를 따옴표로 처리할 수 있다
- [ ] Tab 자동완성과 ↑ 키를 써 봤다
- [ ] 미션 1~6과 연습문제 4개를 도움 없이 풀었다
6. 흔한 실수와 해결
벽 1. cd를 쳤는데 "위치 매개 변수를 찾을 수 없습니다" 오류
원인의 90%는 공백 든 경로를 따옴표 없이 친 것입니다 (3-6 복습). cd "Program Files"처럼 감싸세요.
벽 2. cd를 쳤는데 "경로를 찾을 수 없습니다(Cannot find path)" 오류
이 메시지는 경로 자체가 없다는 뜻입니다. 원인은 대부분:
- 오타:
Documants같은. Tab 자동완성을 쓰면 예방됩니다. - 위치 착각: 지금 있는 폴더에 그런 하위 폴더가 없는 경우.
ls로 뭐가 있는지 먼저 보세요.
에러 메시지에 적힌 경로("Cannot find path ‘여기’")를 보면, 컴퓨터가 뭘 찾으려다 실패했는지 알 수 있습니다. 에러는 적이 아니라 힌트입니다.
벽 3. 한글이 깨져 보인다 (□ 로 나온다)
일부 환경에서 폰트 문제로 생깁니다. 실습 진행에는 지장 없으니 일단 무시해도 됩니다. 터미널 설정을 다루는 챕터에서 고칩니다.
벽 4. 명령을 쳤는데 아무 반응도 없다
대부분 성공입니다. CLI는 말이 없는 게 정상이고, 실패할 때만 소리칩니다(빨간 글씨). 확인하고 싶으면 pwd나 ls로 상태를 물어보세요.
벽 5. 어디 있는지 모르겠다, 패닉
만능 주문 두 개를 외우세요:
pwd— 지금 어디?cd $HOME— 집으로 귀환
7. 정리
오늘 배운 명령어
| 명령 (정식) | 약어 | 하는 일 | 예 |
|---|---|---|---|
Get-Location |
pwd |
현재 위치 보기 | pwd |
Get-ChildItem |
ls, dir |
현재 폴더 목록 | ls |
cd 경로 |
— | 이동 | cd Documents, cd .., cd "C:\Program Files" |
새 개념
| 개념 | 한 줄 요약 |
|---|---|
| CLI vs GUI | 글자 조종 vs 그림 조종 |
| 프롬프트 | PS C:\...> — 현재 위치 표시등. 수시로 본다 |
| 절대경로 | 뿌리부터 쓰는 완전한 주소 |
| 상대경로 | 지금 위치 기준 주소 (.. = 한 단계 위) |
| 따옴표 규칙 | 공백 든 경로는 "로 감싼다 |
| Tab / ↑ | 자동완성 / 이전 명령 불러오기 |
명령어보다 중요한 감각
"아무 말 없으면 성공, 빨간 글씨는 힌트." 그리고 "모르겠으면 pwd를 쳐라." 이 두 문장만으로 CLI 공포증의 절반이 사라집니다.
하나 더 — 명령 이름이 왜 Get-ChildItem처럼 긴지 궁금했다면, 동사-명사 규칙 덕분입니다. 외워야 할 짧은 명령 수백 개보다, 규칙 하나로 추측 가능한 긴 이름을 택한 설계입니다. "폴더 만들기"가 뭐더라? → 만들다(New) + 항목(Item) = New-Item. 다음 챕터에서 만날 명령입니다.
전부 체크되면 Step 1 완료입니다. 사이드바의 체크박스를 눌러 진도를 저장하세요.