파일을 읽는 세 가지 방식
cat은 입력을 stdout으로 끝까지 내보내고, less는 화면 단위로 탐색하게 해. more는 더 단순한 전통적 pager지만 오늘날에는 대개 less가 그 역할을 대신해. 파일 크기와 목적을 모르고 내용을 터미널에 전부 쏟기보다, 전체 전달이 필요한지 대화형 탐색이 필요한지 먼저 결정해.
cat: 이어 붙여 출력해
cat file은 파일을 그대로 stdout에 보내고, cat a b c는 세 파일을 순서대로 이어 붙여. -n은 줄 번호를 붙이고 -A는 탭과 줄 끝처럼 보이지 않는 문자를 드러내는 데 도움을 줘. 단일 파일을 화면으로 읽는 데 굳이 cat을 거칠 필요는 없지만, 여러 입력을 하나의 스트림으로 합치거나 다른 명령으로 전달할 때는 이름 그대로 유용해.
less: 필요한 부분을 탐색해
less에서는 Space와 b로 페이지를 앞뒤로 이동하고, j와 k로 한 줄씩 움직여. /pattern과 ?pattern은 앞뒤 검색, n과 N은 다음·이전 일치 항목, g와 G는 처음·끝, q는 종료야. 큰 로그를 한꺼번에 메모리에 올리거나 화면에 출력하지 않고 필요한 위치를 찾을 수 있어. F는 파일 끝을 따라가며 새 로그를 관찰할 때 쓸 수 있어.
여러 도구가 less를 기본 pager로 써
man, git log, git diff 같은 명령은 긴 출력을 pager로 넘길 수 있어. PAGER와 LESS 환경 변수로 동작을 조정하되, 자동화에서는 pager가 입력을 기다리지 않도록 비대화형 조건을 분리해야 해. less -R은 ANSI 색을 제한적으로 유지하고, -F는 한 화면에 들어오면 바로 끝내며, -X는 종료 뒤 화면 내용을 남겨.
파일의 종류와 크기를 먼저 확인해
file, wc -c, du -h로 입력의 형식과 크기를 살핀 뒤 읽는 도구를 골라. 바이너리나 매우 큰 파일을 터미널에 그대로 보내면 제어 문자가 화면 상태를 바꾸거나 출력 때문에 세션이 느려질 수 있어. 필요한 범위가 파일 앞이나 뒤라면 head와 tail을 쓰고, 검색이 목적이면 grep처럼 결과 범위를 줄이는 도구를 먼저 적용해.