오늘 방문 /누적 방문 /완성한 레슨 소개 ↗
SECONDTEAM
터미널
⌨️ 레슨

터미널 종합 챌린지 — 가게 대청소

배운 명령을 총동원해 반찬가게 폴더를 처음부터 정리해요. 이거 되면 터미널 졸업.

① 오늘의 미션 — 졸업 시험
터미널 코스 졸업 시험
여기까지 정말 잘 오셨어요. mkdir·cd·ls·echo·cp·mv·grep… 하나씩 손에 익혔죠. 오늘은 그 명령들을 전부 동원해서 하나의 미션을 끝까지 해냅니다.

상황: 우리동네 반찬가게가 2호점을 냅니다! 새 지점 폴더를 세우고 → 메뉴 파일을 만들고 → 본점 자료를 백업하고 → 어지러운 파일을 정리하고 → 김치 메뉴를 검색하고 → 메뉴 개수를 세는 대청소를 합니다.

이번엔 다릅니다
명령을 전부 적어주지 않아요. 힌트는 드리지만, 진짜 명령은 기억에서 꺼내 쳐보세요. 그게 졸업이에요. 🎓
설명을 따라 진행하면, 여기서 직접 쳐보게 돼요 👇
~/my-shop
$ _
📚 「터미널 종합 챌린지 — 가게 대청소」 레슨 내용 전체 텍스트로 훑어보기
터미널 코스 졸업 시험
여기까지 정말 잘 오셨어요. mkdir·cd·ls·echo·cp·mv·grep… 하나씩 손에 익혔죠. 오늘은 그 명령들을 전부 동원해서 하나의 미션을 끝까지 해냅니다.

상황: 우리동네 반찬가게가 2호점을 냅니다! 새 지점 폴더를 세우고 → 메뉴 파일을 만들고 → 본점 자료를 백업하고 → 어지러운 파일을 정리하고 → 김치 메뉴를 검색하고 → 메뉴 개수를 세는 대청소를 합니다.

이번엔 다릅니다
명령을 전부 적어주지 않아요. 힌트는 드리지만, 진짜 명령은 기억에서 꺼내 쳐보세요. 그게 졸업이에요. 🎓
2호점 대청소, 가장 먼저 해야 할 일은 무엇일까요? 큰 그림을 먼저 잡아요.
맞아요. 둘 곳(폴더)부터 만드는 게 순서예요. 집도 없이 가구를 사면 길바닥에 쌓이죠. 모든 작업의 첫 1분은 늘 mkdir로 골조를 세우는 일이에요.

홈(~)에 2호점 폴더를 만드는데, 안에 menu(메뉴)·backup(백업) 방까지 한 번에 파야 해요. 중간 폴더가 없어도 통째로 만들어주는 그 옵션, 기억나죠? (힌트: -p)

mkdir -p shop2/menu — 2호점 폴더와 menu 방을 한 번에 (옵션 -p)
mkdir shop2/backup — backup 방도 만들어요
ls shop2 — 잘 생겼는지 확인 — 들어가지 않고 망원경으로
shop2 안에 menu·backup 두 방이 보이면 골조 완성. 들어가지 않고도 ls 폴더이름으로 안을 본 것, 자연스럽죠?

이제 menu 방에 메뉴를 적어요. echo "글자" > 파일왼쪽 글자를 오른쪽 파일에 부어 넣는 명령이에요. 2호점 간판 메뉴 세 줄을 적어봅시다.

cd shop2/menu — menu 방으로 들어가요
echo "오늘의김치 5000" > kimchi.txt — 첫 줄을 파일에 부어 넣어요 ( > 는 새로 쓰기)
echo "김치찌개 7000" > menu.txt — 메뉴 목록 파일도 하나 만들어요
ls — 잘 적혔는지 확인
파일 두 개 탄생! >덮어쓰기(새로)라는 것 기억하세요. 같은 파일에 또 >를 쓰면 이전 내용이 날아가요.

2호점 메뉴 파일이 소중하니 복사본(백업)을 떠두려고 해요. cp menu.txt ../backup/ 를 치면 어떻게 될까요?

맞아요. cp(copy)는 원본을 남기고 복사본을 만들어요. 그래서 '백업'에 딱이죠. 반대로 mv(move)는 원본을 옮겨서 자리에서 사라지게 해요 — 이 둘의 차이가 오늘의 핵심이에요. 직접 확인 👇

예측한 대로 cp로 메뉴 파일을 backup 방에 복사해요. 원본은 그대로 남는다는 걸 두 눈으로 확인합니다.

cp menu.txt ../backup/ — menu.txt를 backup 방으로 복사 (cp = copy)
ls — 원본이 그대로 있는지 확인
ls ../backup — 복사본도 backup에 생겼는지 확인
양쪽에 다 있죠? 원본 1 + 복사본 1 = 안전. 중요한 파일은 이렇게 cp로 사본을 떠두는 습관이 사고를 막아요.

파일 하나가 아니라 menu 방 전체(폴더째)를 backup으로 복사하고 싶어요. cp로 폴더를 복사하려면 옵션이 하나 필요해요. 빈칸을 채워보세요. (recursive — 안쪽까지 통째로)

정답! -r(recursive)예요. 폴더는 안에 또 파일·폴더가 있어서, 안쪽까지 따라 들어가며 복사하라고 알려줘야 해요. mkdir -p-p처럼, 짧은 옵션이 명령의 능력을 바꿔요.

실수로 menu 방에 임시 메모 파일이 굴러다녀요. 이걸 만들어두고, mv이름을 바꿔 정리해봅시다. mv 원래이름 새이름 — 같은 자리에서 쓰면 이름 바꾸기가 돼요.

echo "임시메모" > temp.txt — 정리 연습용 임시 파일을 하나 만들어요
mv temp.txt 신메뉴초안.txt — 이름을 알아보기 쉽게 바꿔요 (mv = move/rename)
ls — 이름이 바뀌었는지 확인
temp.txt신메뉴초안.txt로 바뀌었죠. mv옮기기이자 이름 바꾸기 — 다른 폴더 경로를 주면 이동, 같은 곳에서 새 이름을 주면 개명이에요.

2호점 메뉴 파일들 중에 '김치'가 들어간 줄만 찾고 싶어요. grep "찾을글자" 파일 — 파일 속에서 그 글자가 있는 줄만 집어내는 명령이에요.

grep "김치" menu.txt — menu.txt 안에서 '김치'가 든 줄 찾기
grep "김치" *.txt — 여러 파일을 한 번에 뒤져요 (* = 모든 .txt)
grep수백 줄 파일에서 원하는 줄만 순식간에 뽑아내요. 여러 파일을 *.txt로 한꺼번에 뒤지면, 어느 파일의 몇 번째인지까지 파일이름:내용 형태로 알려줘요.

마지막 집계! grep "김치" *.txt | wc -l 처럼 명령 둘을 |(파이프)로 이으면, 앞 명령의 결과를 뒷 명령에 넘겨줘요. wc -l은 줄 수를 세는 명령이에요. 결과는?

맞아요! |(파이프)는 앞 결과를 뒤로 흘려보내는 관이에요. grep이 찾은 줄들을 wc -l이 받아서 개수만 세줍니다. 이렇게 명령을 레고처럼 이어 붙이는 것이 터미널의 진짜 힘이에요. 직접 세봅시다 👇

파이프(|)로 검색과 세기를 이어, 2호점 김치 메뉴가 몇 줄인지 한 방에 집계해요. 졸업 미션의 마지막 명령입니다.

cat *.txt | wc -l — 전체 메뉴 줄 수를 세요 (모든 .txt 합산)
grep "김치" *.txt | wc -l — 이번엔 '김치'가 든 줄만 세요 — grep과 wc를 파이프로 연결
2 — 김치 메뉴 2줄 집계 완료! 찾기(grep) → 세기(wc) | 하나로 이어 붙였어요. 이게 터미널을 쓰는 사람과 못 쓰는 사람의 차이예요. 🎉

오늘 2호점 대청소 전체 흐름을 떠올리며 순서를 맞춰보세요. (↑↓로 정렬)

완벽해요! 만들고 → 채우고 → 백업하고 → 정리하고 → 찾아 집계. 이 한 바퀴가 바로 터미널로 일하는 사람의 하루예요. 코스에서 배운 모든 걸 손으로 다 해냈어요. 🏆
터미널 코스 졸업! 🎓
mkdir으로 골조를 세우고, echo >로 파일을 채우고, cp로 지키고, mv로 정리하고, grep으로 찾고, |로 명령을 이어 붙였어요. 이제 터미널은 무서운 검은 창이 아니라, 내 손에 익은 작업대예요.
다음 코스에서
지금까지는 명령을 한 줄 한 줄 직접 쳤죠. 다음 코스 Claude Code·프롬프트에서는, "2호점 메뉴 페이지 만들어줘"라고 우리말로 시키면 Claude가 이 명령들을 알아서 척척 쳐줘요. 오늘 손으로 익힌 명령들이 그때 "Claude가 뭘 하는지 알아보는 눈"이 됩니다. 그래서 이 코스가 먼저였어요. 다음 코스에서 만나요! 🚀