콘텐츠로 이동

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
  1. 터미널이 키보드 입력을 받아서 에게 전달합니다.
  2. 은 "python? 아, 그 프로그램 실행하라는 거구나"라고 해석합니다.
  3. OS에게 "야, python 실행 파일 찾아서 메모리에 올려줘"라고 요청합니다.
  4. OSpython.exe를 실행합니다.

잠깐, 실행 파일은 .exe인데 왜 그냥 python이라고 치나요?

윈도우의 똑똑한 습관(PATHEXT) 덕분입니다! 윈도우는 명령어가 입력되면 뒤에 .exe, .bat, .com 등을 알아서 붙여보며 파일을 찾습니다. 그래서 python.exe라고 다 치지 않고 python만 쳐도 찰떡같이 알아듣는 것입니다.

[실습] 터미널과 인사하기

백문이 불여일타! 터미널을 열고 직접 명령을 내려봅시다.

0. 터미널 열기

  • 윈도우: 시작 키 -> PowerShell 검색 -> 실행
  • : Command + Space (Spotlight) -> Terminal 검색 -> 실행

1. "여기가 어디야?" (현재 위치 확인)

  • pwd: Print Working Directory (현재 작업 중인 디렉토리 출력)
# 맥/리눅스/윈도우(PowerShell)
pwd

# 윈도우 (CMD)
cd

2. "뭐가 있어?" (파일 목록 보기)

  • ls: List (목록)
  • dir: Directory (디렉토리)
# 맥/리눅스
ls

# 윈도우 (PowerShell/CMD)
dir
# (PowerShell은 'ls'라고 쳐도 알아듣습니다. 편하게 쓰라고 별명(Alias)을 지어놨거든요.)

3. "저기로 갈래!" (폴더 이동)

  • cd: Change Directory (디렉토리 변경)
# 맥/리눅스/윈도우 공통
cd <폴더명>   # 해당 폴더로 들어감 (Change Directory)
cd ..       # 상위 폴더로 나옴

4. "청소해 줘!" (화면 지우기)

  • clear: Clear (지우다)
  • cls: Clear Screen (화면 지우기)
# 맥/리눅스
clear

# 윈도우 (PowerShell/CMD)
cls

2. 명령어의 정체

우리가 터미널에서 치는 명령어들 (ls, cd, mkdir, python, pip...)은 마법의 주문이 아닙니다. 컴퓨터 어딘가에 저장된 실행 파일들 (.exe)입니다.

  • ls (List): 파일 목록 보여주는 프로그램
  • python: 파이썬 인터프리터 프로그램
  • pip: 파이썬 패키지 관리 프로그램

3. PATH (환경 변수)

그런데 우리는 python.exe가 어디 있는지(C:\Python39\python.exe) 정확한 경로를 입력하지 않고, 그냥 python만 쳐도 실행이 됩니다. 어떻게 된 걸까요?

비서(쉘)가 "자주 쓰는 실행 파일들을 모아둔 폴더 목록(PATH)"을 미리 외우고 있기 때문입니다.

  1. 사용자가 python 입력
  2. 쉘은 PATH 목록에 있는 폴더들을 순서대로 뒤집니다.
  3. "어! 여기 python 파일 찾았어요!" -> 실행

Command Not Found 에러

'python'은(는) 내부 또는 외부 명령, 실행할 수 있는 프로그램...이 아닙니다.

이 에러는 "PATH 목록을 다 뒤져봤는데 그런 파일 없는데요?" 라는 뜻입니다. 파이썬을 설치했는데도 이 에러가 뜬다면, 설치할 때 [x] Add Python to PATH 체크박스를 껐기 때문일 확률이 99%입니다.


💡 AI와 협업할 때 주의할 점

AI(ChatGPT, Gemini)가 코드를 알려줄 때, 어디에 입력해야 하는지 구분해야 합니다.

구분 쉘 명령어 (Shell) 파이썬 코드 (Python)
특징 프로그램 설치, 파일 관리, 실행 실제 로직, 계산, 데이터 처리
프롬프트 $, > 기호로 표시됨 >>> 기호나 코드 블록
예시 pip install pandas
python main.py
ls, cd
import pandas
print("Hello")
def my_func():

가장 흔한 실수

터미널(검은 화면)에 import pandas를 치거나, 파이썬 코드 안에 pip install을 적으면 에러가 납니다. "이게 비서(Shell)한테 할 말인지, 번역가(Python)한테 할 말인지" 구분하세요!