동작하는 코드
터미널을 열고 첫 명령어를 입력해봅시다. macOS라면 Spotlight(⌘+스페이스)에서 "Terminal"을 검색하거나, 응용 프로그램 → 유틸리티 → 터미널을 실행합니다.
예제 1: 텍스트 출력하기
echo "안녕, 터미널!"
출력:
안녕, 터미널!
echo는 텍스트를 화면에 출력하는 명령어입니다. 가장 간단한 명령어 중 하나입니다.
예제 2: 현재 위치와 파일 목록 확인
pwd
출력 예시:
/Users/dale
ls
출력 예시:
Desktop Documents Downloads Movies Music Pictures
예제 3: 명령어에 옵션 더하기
ls -l
출력 예시:
drwx------ 5 dale staff 160 Jan 15 10:30 Desktop
drwx------ 10 dale staff 320 Jan 14 09:00 Documents
drwx------ 3 dale staff 96 Jan 13 15:20 Downloads
-l처럼 -로 시작하는 글자를 플래그(flag) 또는 옵션이라고 합니다. 명령어의 동작 방식을 바꿉니다.
echo 명령어로 텍스트를 출력해보세요. pwd로 현재 위치, ls로 파일 목록을 확인해보세요. help를 입력하면 사용 가능한 명령어 목록이 나옵니다.
직접 수정하기
명령어의 구조를 이해하면 새 명령어도 쉽게 배울 수 있습니다.
명령어 구조: 동사 + 플래그 + 인자
ls -la Documents
↑ ↑ ↑
동사 플래그 인자(대상)
- 동사(command): 무엇을 할지 (
ls,echo,pwd) - 플래그(flag/option): 어떻게 할지 (
-l,-a,-r) - 인자(argument): 무엇에 대해 할지 (
Documents,file.txt)
이제 다양한 명령어를 조합해보세요:
# 숨긴 파일 포함 상세 목록
ls -la
# 특정 디렉토리 내용 보기
ls -l Documents
# 메시지를 파일에 저장
echo "첫 번째 파일" > hello.txt
# 파일 내용 읽기
cat hello.txt
플래그를 여러 개 합칠 수도 있습니다. ls -l -a와 ls -la는 동일합니다.
ls -la로 숨긴 파일까지 모두 확인해보세요. echo 텍스트 > 파일명.txt로 파일을 만들어보세요.
"왜?" — 터미널은 왜 쓰는 걸까요?
터미널은 텍스트로 컴퓨터에게 명령을 내리는 인터페이스입니다. GUI(그래픽 인터페이스)로 하면 클릭을 여러 번 해야 하는 작업을 명령어 한 줄로 처리할 수 있습니다.
| 상황 | GUI | 터미널 |
|---|---|---|
| 파일 1000개 이름 바꾸기 | 하나씩 클릭 (사실상 불가) | 명령어 한 줄 |
| 서버에 접속하기 | GUI 없음 | SSH로 가능 |
| 자동화 스크립트 실행 | 불가능 | 즉시 실행 |
| 텍스트 검색/치환 | 에디터에서 하나씩 | grep/sed 한 줄 |
프롬프트 구조 이해하기
터미널을 열면 이런 글자가 보입니다:
dale@macbook ~ %
dale— 현재 사용자 이름macbook— 컴퓨터 이름~— 현재 위치 (~는 홈 디렉토리를 뜻함)%— 명령을 기다리는 표시 (bash는$, zsh는%)
stdin과 stdout — 데이터의 흐름
터미널의 핵심 개념입니다:
키보드 → [stdin] → 명령어 → [stdout] → 화면
- stdin (standard input): 명령어가 데이터를 받는 입력 통로 (기본: 키보드)
- stdout (standard output): 명령어가 결과를 내보내는 출력 통로 (기본: 화면)
echo "hello"를 입력하면:
echo가"hello"를 stdin이 아닌 인자로 받아- stdout(화면)에
hello를 출력합니다
이 개념이 중요한 이유는 나중에 배울 **파이프(|)**와 **리다이렉션(>)**의 기반이 되기 때문입니다.
흔한 실수
실수 1: 대소문자 구분
# 잘못됨
LS
Echo "hello"
# 올바름
ls
echo "hello"
터미널 명령어는 대소문자를 구분합니다. LS는 ls와 다릅니다.
실수 2: 공백 주의
# 이건 파일명이 "hello"와 "world.txt" 두 개
ls hello world.txt
# 이건 파일명이 "hello world.txt" 하나
ls "hello world.txt"
파일명에 공백이 있으면 반드시 따옴표로 감싸세요.
실수 3: 명령어를 찾지 못할 때
zsh: command not found: sl
오타거나 해당 프로그램이 설치되지 않은 것입니다. ls를 sl로 쓰지 않았는지 확인하세요.
심화 학습
bash와 zsh의 차이는 뭔가요?
**셸(Shell)**은 명령어를 해석하고 실행하는 프로그램입니다. 터미널은 셸을 실행하는 창일 뿐입니다.
- bash — 오래된 기본 셸. 리눅스 서버에서 많이 씁니다.
- zsh — macOS Catalina(2019)부터 기본 셸. bash보다 기능이 많습니다.
현재 어떤 셸을 쓰는지 확인:
echo $SHELL
출력:
/bin/zsh
이 강의는 bash와 zsh 모두에서 동작하는 명령어를 사용합니다.
터미널 앱 선택: 기본 터미널 vs iTerm2
맥 기본 터미널 앱과 iTerm2 모두 좋습니다. iTerm2는 다음 기능이 추가로 있습니다:
- 탭과 분할 화면
- 더 나은 색상 지원
- 검색 기능
처음이라면 기본 터미널로 시작하고, 나중에 필요하면 iTerm2로 전환해도 됩니다. 명령어는 동일합니다.
명령어 히스토리와 자동완성
이미 입력한 명령어를 다시 쓰지 않아도 됩니다:
↑/↓키 — 이전/다음 명령어Ctrl+R— 히스토리 검색 (입력하면 일치하는 명령어 찾음)Tab— 파일명/명령어 자동완성
# "ls Doc" 입력 후 Tab 누르면:
ls Documents/
이 세 가지만 써도 타이핑 양이 절반으로 줄어듭니다.
- 터미널을 열고
echo "나의 첫 명령어"를 입력해보세요. pwd로 현재 위치를 확인하세요.ls로 파일 목록을 확인하고,ls -la로 숨긴 파일까지 확인하세요.echo "안녕하세요" > greeting.txt로 파일을 만들고,cat greeting.txt로 내용을 읽어보세요.ls -l greeting.txt로 방금 만든 파일의 상세 정보를 확인하세요.
echo, pwd, ls 명령어를 직접 입력해보세요. ls -la로 숨긴 파일도 확인하고, echo 텍스트 > 파일.txt로 파일을 만들어보세요.
ls -la Documents 명령어에서 각 부분의 역할이 바르게 짝지어진 것은?