리눅스 텍스트 명령어 — cat·less·grep·tail
리눅스는 거의 모든 게 텍스트 파일입니다 — 설정도, 로그도. 그래서 "파일 내용 보고 찾는" 명령어가 손에 붙으면 절반은 끝나요.
6편에서 파일을 만들고·복사하고·옮기고·지웠죠. 그런데 정작 "그 안에 뭐가 들었는지"는 아직 못 봤어요. 리눅스에서 이게 중요한 이유 — 설정 파일(/etc/...)도, 프로그램 로그(/var/log/...)도, 거의 다 그냥 텍스트 파일입니다. 메모장 열듯 볼 수만 있으면 시스템의 절반이 보여요.
이 글은 "파일을 열지 않고 내용을 보는" 명령어들입니다 — 통째로 쏟아내는 cat, 페이지 넘기며 보는 less, 앞/뒤만 떼서 보는 head/tail, 실시간으로 흐르는 걸 보는 tail -f, 그리고 "어디에 그 단어 있지"를 찾는 grep. 마지막엔 wc·sort·uniq와 파이프(|) 맛만 봅니다. 26편 입문 시리즈 7편이고, 명령어 다 안전한 것들이에요(파일을 고치진 않음 — 그건 8편 nano부터).
~/linux-practice가 있으면 거기서, 없으면 mkdir -p ~/linux-practice && cd ~/linux-practice로 만들고 시작하세요. 실습용 텍스트 파일은 아래에서 함께 만듭니다.
파일 내용 보는 4가지 — cat · less · head · tail
먼저 실습용 파일을 하나 만듭니다(여러 줄짜리):
이제 이 파일을 네 가지 방법으로 봅니다 — 상황에 따라 골라 씁니다:
cat. 긴 파일을 차분히 보고 싶다 = less(파일 안 망가뜨림, 검색 됨). 파일 맨 앞만 = head. 파일 맨 뒤(특히 로그의 최근 부분)만 = tail. 이 넷이면 거의 다 됩니다.tail -f — 로그가 실시간으로 흐르는 걸 본다
이건 따로 빼서 강조합니다. 실무에서 가장 많이 쓰는 텍스트 명령 중 하나예요. tail -f는 "파일의 끝을 보여주는데, 새 줄이 추가되면 그것도 바로 화면에 띄워준다"는 뜻입니다.
왜 유용하냐면 — 프로그램이 이상하게 동작할 때, tail -f로 로그를 띄워두고 그 프로그램을 한 번 더 실행해보면 "무슨 일이 일어나는지"가 눈앞에서 흘러갑니다. "에러 났어요"보다 훨씬 구체적인 단서가 잡혀요. (로그 폴더 자체에 대한 자세한 얘기는 시리즈 24편 "로그 분석"에서.) 지금은 "로그는 텍스트 파일이고, tail -f로 실시간으로 볼 수 있다"만 챙기면 됩니다.
grep — "어디에 그 단어 있지"
파일이 길어지면 눈으로 못 찾습니다. grep은 "이 단어가 들어 있는 줄만 골라서 보여줘"예요. 텍스트를 다루는 한 평생 씁니다.
자주 쓰는 옵션은 셋 — -n(줄 번호), -i(대소문자 무시), -r(폴더 전체 뒤지기). 코드 폴더에서 "이 함수 어디서 쓰지?" 할 때 grep -rn "함수이름" .이면 끝납니다. 6편의 find가 "파일 이름으로 찾기"였다면, grep은 "파일 내용으로 찾기"예요. 둘 다 알면 무적.
세고·정렬하고 — wc · sort · uniq, 그리고 파이프(|) 맛보기
마지막 세 개는 "텍스트를 가공하는" 도구입니다. 그리고 여기서 리눅스의 진짜 무기 — 파이프(|) — 를 살짝 보여드릴게요. 파이프는 "왼쪽 명령의 출력을 오른쪽 명령의 입력으로 넘긴다"는 뜻입니다.
마지막 한 줄(sort fruits.txt | uniq -c) 보세요 — 작은 명령 두 개를 파이프로 이어 붙였더니 "과일별 개수"가 나왔습니다. 이게 리눅스 명령줄의 철학이에요: 작은 도구를 파이프로 조립해 큰 일을 한다. grep ... | wc -l(특정 단어가 든 줄이 몇 개?), cat 로그 | grep ERROR | tail(로그에서 에러만 골라 최근 것) 같은 조합이 일상이 됩니다. 파이프와 리다이렉션을 제대로 다루는 건 시리즈 12편에서요. 오늘은 "|로 명령을 이어 붙일 수 있다"는 감만.
less·man 안에서 길을 잃으면 항상 q로 나옵니다. tail -f처럼 안 끝나는 명령은 Ctrl+C. 그리고 명령어 옵션이 헷갈리면 grep --help·man sort — 4편에서 배운 내장 설명서. 인터넷보다 빠를 때가 많아요.정리 — 다음은 직접 고치기(nano)
오늘 손에 넣은 것: cat/less/head/tail(내용 보기), tail -f(실시간 로그), grep(내용으로 찾기, 옵션 -n -i -r), wc -l/sort/uniq -c(세고 정렬), 그리고 파이프 |(작은 도구 조립). 전부 "보고 찾고 세는" 거였죠 — 파일을 망가뜨릴 일이 없는 것들.
이제 슬슬 파일을 직접 고쳐야 합니다. 설정 파일 한 줄 바꾸기 같은 거요. 다음 8편은 터미널 안에서 텍스트를 편집하는 가장 쉬운 도구 — nano입니다. (고수들이 쓰는 vim은 13편에서 따로.) nano만 알면 /etc/... 설정도 손볼 수 있어요.
시리즈 흐름
- 1~5편 입문 묶음 ✔ 6편 — 파일 명령어(cp·mv·rm·find) ✔
- 7편 — 텍스트 명령어 (이 글) ✔
- 8편 — nano 편집기 (터미널에서 파일 고치기 — 가장 쉬운 길)
- 9편 — 권한과
chmod/ 10편 — 사용자·그룹 / 11편 — apt / 12편 — 파이프와 리다이렉션 …
오늘 할 일: ~/linux-practice에서 fruits.txt 만들고, cat → less(q로 나오기) → grep 사과 fruits.txt → sort fruits.txt | uniq -c를 순서대로 쳐보세요. 마지막 파이프 한 줄에서 "오"가 나오면 성공입니다. 8편에서 만나요. (더 깊이는 우분투 공식 명령줄 튜토리얼도 함께.)