사소해 보이지만 평생 쓰는 도구 셋
wc는 개수를 세고, head와 tail은 입력의 처음과 끝을 보여 줘. 옵션은 몇 개뿐이지만 일상적인 확인 작업에서 계속 쓰게 돼.
wc로 줄·단어·바이트 세기
wc -l file은 줄 수를 세며 가장 자주 사용해.wc -w file은 단어 수를 세어.wc -c file은 바이트 수를 세어.wc -m file은 글자 수를 세므로 UTF-8 텍스트에서는 바이트 수와 다를 수 있어.
파이프에 연결하면 find . | wc -l로 경로 수를, git log --oneline | wc -l로 커밋 수를 셀 수 있어. 파일의 바이트 수는 wc -c < file처럼 입력 리디렉션으로 넘기면 돼.
head로 처음 N줄 보기
head file은 기본적으로 처음 10줄을 보여 줘.head -n 20 file은 처음 20줄을 보여 줘.head -n -5 file은 GNU 구현에서 마지막 5줄을 뺀 나머지를 보여 줘.head -c 100 file은 처음 100바이트를 보여 줘.
tail로 마지막 N줄 보기
tail file은 기본적으로 마지막 10줄을 보여 줘.tail -n 50 file은 마지막 50줄을 보여 줘.tail -n +10 file은 10번째 줄부터 끝까지 보여 줘.tail -f file은 파일에 새로 붙는 줄을 계속 따라가므로 로그를 지켜볼 때 유용해.tail -F file은 로그 파일이 교체된 뒤에도 같은 이름의 새 파일을 다시 따라가.
킬러 콤보
tail -f /var/log/system.log | grep -i error는 새 오류를 골라 보며, find . -name '*.py' | head는 검색 결과의 앞부분을 미리 보여 줘. history | tail -20으로는 최근 명령 20개를 확인할 수 있어.
처음과 끝을 보는 도구는 표본 도구야
head와 tail은 전체 데이터의 일부만 보여 줘. 앞 몇 줄이 정상이라고 파일 전체가 같은 형식이라는 뜻은 아니고, 끝 몇 줄에 오류가 없다고 이전 오류가 사라지는 것도 아니야. 빠른 초기 진단과 완전한 검증을 구분해.
tail -f에도 회전 경계가 있어
로그 파일이 rename되거나 새 inode로 교체되면 follow 방식에 따라 옛 파일을 계속 보거나 새 파일로 따라갈 수 있어. 운영체제와 옵션을 확인하고, 중요한 서비스 로그는 로그 시스템의 조회 기능을 함께 써.