Snow flake

[command] wc, head, tail 명령어 본문

Programming/Linux

[command] wc, head, tail 명령어

MAYSON 2026. 9. 23. 22:43
반응형

로그 파일을 다룰 때 파일 전체를 다 열어보기보다, 앞부분만 슬쩍 보거나 뒷부분만 확인하거나, 전체 줄 수가 얼마나 되는지 먼저 파악하는 경우가 많습니다. 이때 사용하는 명령어가 wc, head, tail입니다. cat/less 글에서 다뤘던 파일 확인 명령어들과 함께 자주 쓰이는 조합입니다.

wc (Word Count)

wc는 Word Count의 약자로, 파일의 줄 수, 단어 수, 글자(바이트) 수를 세어주는 명령어입니다.

# 사용법
wc [옵션] 파일명

# 옵션 없이 실행하면 줄 수, 단어 수, 바이트 수를 순서대로 출력
wc app.log

# 결과 예시
  1523   8241  102400 app.log
# (줄 수)  (단어 수)  (바이트 수)  (파일명)

wc 주요 옵션

# -l : 줄 수만 출력
wc -l app.log

# -w : 단어 수만 출력
wc -w app.log

# -c : 바이트 수만 출력
wc -c app.log

# 여러 파일을 한 번에, 마지막에 합계까지 표시
wc -l *.log

실무에서는 -l(줄 수)을 압도적으로 많이 씁니다. 로그 파일이 얼마나 쌓였는지, grep으로 걸러낸 결과가 몇 건인지 셀 때 자주 사용합니다.

# 특정 문자열이 몇 번 나왔는지 개수 확인 (grep과 조합)
grep ERROR app.log | wc -l

grep 글에서 다뤘던 검색 결과를 wc로 세는 조합은, "에러가 몇 건 발생했는지"를 빠르게 확인할 때 실무에서 정말 자주 쓰입니다.

head (파일 앞부분 확인)

head는 파일의 앞부분 몇 줄만 출력하는 명령어입니다. 파일이 너무 커서 전체를 열어보기 부담스러울 때, 파일 형식이나 헤더 정보만 빠르게 확인하고 싶을 때 사용합니다.

# 사용법
head [옵션] 파일명

# 기본값: 앞에서 10줄 출력
head app.log

# -n : 원하는 줄 수만큼 출력
head -n 20 app.log
head -20 app.log        # -n을 생략하고 숫자만 붙여도 동일하게 동작

tail (파일 뒷부분 확인)

tail은 head와 반대로, 파일의 뒷부분 몇 줄만 출력하는 명령어입니다. 로그 파일은 보통 최신 내용이 파일 맨 아래에 계속 추가되기 때문에, 최근 상황을 확인할 때는 head보다 tail을 훨씬 자주 사용합니다.

# 사용법
tail [옵션] 파일명

# 기본값: 뒤에서 10줄 출력
tail app.log

# -n : 원하는 줄 수만큼 출력
tail -n 50 app.log
tail -50 app.log

장애가 발생했을 때 로그 파일 전체를 읽을 시간은 없으니, 가장 최근에 무슨 일이 있었는지부터 tail로 확인하는 것이 일반적인 순서입니다.

tail -f로 실시간 모니터링

tail의 진짜 활용도는 -f(follow) 옵션에서 나옵니다. 이 옵션을 쓰면 파일 뒷부분을 출력한 뒤, 화면이 종료되지 않고 계속 실행 상태로 남아서 새로 추가되는 내용을 실시간으로 보여줍니다.

# 실시간으로 로그 파일 뒷부분을 계속 지켜보기
tail -f app.log

# 종료할 때는 Ctrl + C

# grep과 조합해서 특정 키워드가 나올 때만 실시간 확인
tail -f app.log | grep ERROR

tail -f는 top 글에서 다뤘던 실시간 모니터링과 비슷한 개념으로, 애플리케이션이나 배치 작업이 실행되는 동안 로그가 어떻게 쌓이는지 그 자리에서 계속 지켜보고 싶을 때 사용합니다. 배치 작업을 실행해놓고 별도 터미널에서 tail -f로 로그를 지켜보는 방식은 실무에서 매우 흔한 패턴입니다.

head/tail 조합으로 특정 구간만 보기

head와 tail을 함께 쓰면, 파일 중간의 특정 구간만 뽑아볼 수도 있습니다.

# 100번째 줄부터 120번째 줄까지만 보고 싶을 때
head -n 120 app.log | tail -n 21

# 앞에서 120줄을 가져온 뒤, 그중 뒤에서 21줄(100~120번째 줄)만 남김

sed 글에서 다뤘던 sed -n '100,120p'로도 동일한 결과를 얻을 수 있는데, head/tail 조합은 문법을 외우기 쉬워서 급하게 특정 구간만 확인할 때 편리합니다.

실무에서 자주 마주치는 상황

배치 작업 실행 중 로그를 확인하는 일반적인 흐름은 다음과 같습니다.

# 1단계: 배치 작업 시작
nohup /home/oracle/scripts/batch_job.sh &

# 2단계: 로그 파일이 얼마나 쌓이는지 실시간으로 지켜보기
tail -f /home/oracle/logs/batch_job.log

# 3단계: 작업 완료 후, 전체 로그에 에러가 몇 건 있었는지 확인
grep ERROR /home/oracle/logs/batch_job.log | wc -l

# 4단계: 에러가 있다면 최근 발생한 에러 몇 건만 빠르게 확인
grep ERROR /home/oracle/logs/batch_job.log | tail -n 5

작업을 실행하는 동안은 tail -f로 실시간 상황을 지켜보고, 작업이 끝난 뒤에는 wc -l로 전체 규모를 파악하고, 문제가 있다면 tail로 최근 내용만 빠르게 확인하는 식으로 조합해서 사용합니다. 로그 파일 하나를 처음부터 끝까지 읽는 대신, 필요한 부분만 빠르게 짚어내는 것이 이 명령어들의 핵심 활용법입니다.

반응형

'Programming > Linux' 카테고리의 다른 글

[command] date, cal 명령어  (0) 2026.09.26
[command] iostat, vmstat 명령어  (0) 2026.09.25
[command] netstat, ss 명령어  (0) 2026.09.22
[command] top 명령어  (0) 2026.09.21
[command] ln 명령어  (0) 2026.09.20
Comments