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

파일 들여다보기 — cat·head·tail

파일을 열지 않고 cat·head·tail로 내용을 봐요. 긴 파일도 앞만, 끝만 살짝.

① 오늘의 미션
가게 장부를 들여다보는 법
지난 레슨에서 cp·mv로 파일을 복사하고 옮겼어요. 오늘은 한 걸음 더 — 파일을 열지 않고도 안을 들여다봅니다. 메뉴판에 글을 적고(echo·>), 긴 주문 기록에서 최근 주문만 쏙 꺼내 보는(tail) 거예요.

편집기를 켜고 마우스로 스크롤하는 대신, 터미널에서 바로 봅니다. 손님 응대하다 장부를 휙 넘겨보는 느낌이에요.

설명을 따라 진행하면, 여기서 직접 쳐보게 돼요 👇
~/my-shop
$ _
📚 「파일 들여다보기 — cat·head·tail」 레슨 내용 전체 텍스트로 훑어보기
가게 장부를 들여다보는 법
지난 레슨에서 cp·mv로 파일을 복사하고 옮겼어요. 오늘은 한 걸음 더 — 파일을 열지 않고도 안을 들여다봅니다. 메뉴판에 글을 적고(echo·>), 긴 주문 기록에서 최근 주문만 쏙 꺼내 보는(tail) 거예요.

편집기를 켜고 마우스로 스크롤하는 대신, 터미널에서 바로 봅니다. 손님 응대하다 장부를 휙 넘겨보는 느낌이에요.

파일 내용을 통째로 화면에 뿌려주는 명령은 cat이에요. 고양이일까요?
concatenate(이어붙이다)의 줄임말이에요. 원래는 여러 파일을 이어붙이는 명령인데, 실제론 파일 하나를 통째로 보는 데 제일 많이 써요. 봉투를 뜯어 편지를 펼쳐 읽는 셈이죠.

먼저 볼 파일이 있어야겠죠. echo는 우리가 준 글자를 그대로 되읊어주고, >를 붙이면 그 글을 파일에 적어줘요. 메뉴판 한 줄을 만들고, cat으로 펼쳐 봅시다.

echo 우리동네 반찬가게 — echo는 준 글자를 그대로 화면에 되읊어요
echo 김치 3000원 > menu.txt — 이번엔 화면 대신 파일(menu.txt)에 적어요
cat menu.txt — cat으로 파일 안을 펼쳐 봐요
> 하나로 화면에 나올 글이 파일 속으로 방향을 틀었어요(그래서 '리다이렉션'이라 불러요). 그리고 cat으로 다시 펼쳐 확인까지 했죠.
긴 파일을 통째로(cat) 보면 화면이 주르륵 넘어가버려요. 그래서 앞·끝만 살짝 보는 두 도구가 있어요.
head — 앞 10줄: 파일의 처음 10줄만 보여줘요. 이 파일이 뭔지 첫 문단만 훑어보고 싶을 때. head -n 5면 5줄만.
tail — 끝 10줄: 파일의 마지막 10줄만 보여줘요. 주문이 계속 쌓이는 기록에서 가장 최근 것만 볼 때 딱. tail -n 5면 5줄만.

오늘 하루 주문이 잔뜩 쌓였다고 해볼게요. 한 줄씩 적기 번거로우니, 가게에서 주문 기록 파일을 미리 받아왔다고 칩시다. cat으로 통째로 한번 보면… 화면이 어떻게 될까요?

echo 1번 김치 2개 > orders.txt — 첫 주문을 새 파일에 적어요 (>로 시작)
cat orders.txt — 통째로 보기 — 지금은 한 줄뿐이에요
지금은 한 줄이라 괜찮지만, 주문이 100줄 쌓이면 cat은 화면을 가득 채우고 위로 휙 넘어가버려요. 그럴 때 head·tail이 필요해지죠.

주문이 끝없이 쌓인 orders.txt가 있어요. 방금 들어온 최신 주문만 확인하고 싶다면, 어떤 명령이 맞을까요?

맞아요. 기록은 아래로 쌓여요 — 새 주문일수록 파일 끝에 붙죠. 그래서 최근 것만 보려면 tail이에요. 첫 주문이 궁금하면 head. 노트의 마지막 장을 펼치는 것과 첫 장을 펴는 것의 차이예요.

실제로 headtail이 같은 파일을 어떻게 다르게 보여주는지 손으로 느껴봐요. (지금 파일은 짧아서 결과가 같아 보이지만, 명령의 의도를 손에 익히는 게 목적이에요.)

head orders.txt — 앞쪽부터 — 처음 주문이 궁금할 때
tail orders.txt — 끝쪽부터 — 최근 주문이 궁금할 때
tail -n 1 orders.txt — 줄 수를 지정할 수도 있어요 (끝 1줄만)
-n 숫자로 보고 싶은 줄 수를 정할 수 있어요. 손님 응대 중엔 tail -n 3 orders.txt 한 줄이면 최근 주문 셋이 바로 떠요.

새 주문이 또 들어왔어요! 그런데 >를 쓰면 기존 주문이 전부 지워지고 새 줄로 덮여요(흰 칠판을 지우듯). 기존 기록은 그대로 두고 아래에 한 줄 덧붙이려면 어떤 기호를 쓸까요? 빈칸을 채워보세요.

정답! >>예요. >가 칠판을 통째로 지우고 새로 쓰는 거라면, >>다음 빈 줄에 이어 쓰는 거예요 — 위에 적힌 건 그대로 남아요. 주문 기록처럼 쌓이는 파일엔 항상 >>.

방금 배운 >>로 새 주문을 끝에 붙이고, tail로 잘 붙었는지 확인해요. 기존 1번 주문이 안 지워졌는지도 함께 봅시다.

echo 2번 멸치볶음 1개 >> orders.txt — >>로 끝에 한 줄 덧붙여요 (덮어쓰기 아님)
tail -n 2 orders.txt — 끝 2줄을 확인 — 둘 다 살아있나요?
1번 주문이 그대로 있고, 그 아래에 2번이 붙었죠. 이게 >>의 핵심이에요 — 쌓되 지우지 않는다.
주문 100개가 쌓인 orders.txt에 새 주문을 적으려다, 실수로 echo 새주문 > orders.txt 라고 쳤어요. 어떻게 될까요?
무섭게도 기존 100줄이 통째로 날아가고 한 줄만 남아요. >는 칠판을 먼저 싹 지우거든요 — 게다가 되돌릴 수 없어요. 그래서 기존 내용에 더할 땐 꺾쇠를 꼭 두 개(>>) 쓰는 습관이 안전벨트예요.

오늘 한 일을 떠올리며, 새 주문 기록을 만들고 들여다보는 순서를 맞춰보세요. (↑↓로 정렬)

좋아요! 새로 만들 땐 >, 쌓을 땐 >>, 최근 것만 볼 땐 tail, 전체는 cat. 이 네 박자가 장부를 다루는 손동작이에요.
한 줄로
파일을 열지 않고도 들여다보고(cat·head·tail), 글을 적고(echo + >), 안전하게 덧붙이는(>>) 법을 익혔어요. 특히 >는 덮어쓰기, >>는 덧붙이기 — 이 한 끗 차이가 장부를 지키는 안전벨트예요.
다음 레슨에서
주문이 수백 줄이 되면 tail로도 부족해져요. 그때 grep으로 '김치'가 들어간 줄만 콕 집어 찾는 법을 배웁니다 — 장부 전체에서 한 줄을 낚는 검색의 기술이에요. 🔍