02. 터미널과 쉘 (창문과 비서)
"검은 화면은 무서운 게 아닙니다. 지배인(OS)과 대화하는 직통 전화입니다."
1. 터미널 vs 쉘
사람들은 흔히 "터미널 켜", "쉘 켜"를 혼용해서 쓰지만, 엄밀히는 다릅니다.
- 터미널 (Terminal): 우리 눈에 보이는 창(Window)입니다. (입출력 도구)
- 💡 마우스로 클릭하는 환경을 GUI (Graphical User Interface), 글로 명령하는 환경을 CLI (Command Line Interface)라고 합니다.
- 쉘 (Shell): 우리가 친 글자를 해석해서 OS에게 전달하는 비서(Program)입니다.
- 윈도우:
cmd,PowerShell - 맥/리눅스:
zsh,bash
- 윈도우:
🔄 명령어 실행 과정
우리가 터미널에 python이라고 치고 엔터를 누르면 어떤 일이 벌어질까요?
graph LR
User["🧑💻 사용자"] -->|"1. 입력 (python)"| Terminal["📺 터미널 (창문)"]
Terminal -->|"2. 전달"| Shell["🤖 쉘 (비서)"]
Shell -->|"3. 파일 찾기 (PATH)"| OS["⚙️ OS (지배인)"]
OS -->|"4. 실행 (python.exe)"| Shell
Shell -->|"5. 결과 출력"| Terminal
style Terminal fill:#e1f5fe,stroke:#01579b
style Shell fill:#fff9c4,stroke:#fbc02d
style OS fill:#f3e5f5,stroke:#4a148c
- 터미널이 키보드 입력을 받아서 쉘에게 전달합니다.
- 쉘은 "python? 아, 그 프로그램 실행하라는 거구나"라고 해석합니다.
- 쉘이 OS에게 "야, python 실행 파일 찾아서 메모리에 올려줘"라고 요청합니다.
- OS가
python.exe를 실행합니다.
잠깐, 실행 파일은 .exe인데 왜 그냥 python이라고 치나요?
윈도우의 똑똑한 습관(PATHEXT) 덕분입니다!
윈도우는 명령어가 입력되면 뒤에 .exe, .bat, .com 등을 알아서 붙여보며 파일을 찾습니다.
그래서 python.exe라고 다 치지 않고 python만 쳐도 찰떡같이 알아듣는 것입니다.
[실습] 터미널과 인사하기
백문이 불여일타! 터미널을 열고 직접 명령을 내려봅시다.
0. 터미널 열기
- 윈도우:
시작키 ->PowerShell검색 -> 실행 - 맥:
Command + Space(Spotlight) ->Terminal검색 -> 실행
1. "여기가 어디야?" (현재 위치 확인)
- pwd: Print Working Directory (현재 작업 중인 디렉토리 출력)
2. "뭐가 있어?" (파일 목록 보기)
- ls: List (목록)
- dir: Directory (디렉토리)
3. "저기로 갈래!" (폴더 이동)
- cd: Change Directory (디렉토리 변경)
4. "청소해 줘!" (화면 지우기)
- clear: Clear (지우다)
- cls: Clear Screen (화면 지우기)
2. 명령어의 정체
우리가 터미널에서 치는 명령어들 (ls, cd, mkdir, python, pip...)은 마법의 주문이 아닙니다.
컴퓨터 어딘가에 저장된 실행 파일들 (.exe)입니다.
ls(List): 파일 목록 보여주는 프로그램python: 파이썬 인터프리터 프로그램pip: 파이썬 패키지 관리 프로그램
3. PATH (환경 변수)
그런데 우리는 python.exe가 어디 있는지(C:\Python39\python.exe) 정확한 경로를 입력하지 않고,
그냥 python만 쳐도 실행이 됩니다. 어떻게 된 걸까요?
비서(쉘)가 "자주 쓰는 실행 파일들을 모아둔 폴더 목록(PATH)"을 미리 외우고 있기 때문입니다.
- 사용자가
python입력 - 쉘은
PATH목록에 있는 폴더들을 순서대로 뒤집니다. - "어! 여기
python파일 찾았어요!" -> 실행
Command Not Found 에러
'python'은(는) 내부 또는 외부 명령, 실행할 수 있는 프로그램...이 아닙니다.
이 에러는 "PATH 목록을 다 뒤져봤는데 그런 파일 없는데요?" 라는 뜻입니다. 파이썬을 설치했는데도 이 에러가 뜬다면, 설치할 때 [x] Add Python to PATH 체크박스를 껐기 때문일 확률이 99%입니다.
💡 AI와 협업할 때 주의할 점
AI(ChatGPT, Gemini)가 코드를 알려줄 때, 어디에 입력해야 하는지 구분해야 합니다.
| 구분 | 쉘 명령어 (Shell) | 파이썬 코드 (Python) |
|---|---|---|
| 특징 | 프로그램 설치, 파일 관리, 실행 | 실제 로직, 계산, 데이터 처리 |
| 프롬프트 | $, > 기호로 표시됨 |
>>> 기호나 코드 블록 |
| 예시 | pip install pandaspython main.pyls, cd |
import pandasprint("Hello")def my_func(): |
가장 흔한 실수
터미널(검은 화면)에 import pandas를 치거나,
파이썬 코드 안에 pip install을 적으면 에러가 납니다.
"이게 비서(Shell)한테 할 말인지, 번역가(Python)한테 할 말인지" 구분하세요!