Linux 강좌 / 파일 내용 읽기 - cat, less, more, head, tail

리눅스에서 파일 내용을 읽을 때는 짧은 파일에 cat, 긴 파일을 탐색할 때 less나 more, 처음 또는 마지막 몇 줄만 확인할 때 head와 tail을 사용합니다. 파일을 화면에 출력하는 것과 편집하는 것은 다릅니다. 이 강좌에서는 같은 실습 파일을 다섯 명령으로 살펴보며 적절한 선택 기준을 익힙니다.

안전한 실습 파일 준비하기

아래 명령은 Bash에서 일반 사용자로 실행합니다. 홈 디렉터리에 linux-course-10-practice가 이미 있다면 기존 자료를 건드리지 말고 다른 이름을 정하세요. mkdir가 실패했는데 다음 명령을 계속 실행하면 기존 파일을 덮어쓸 수 있습니다.

mkdir ~/linux-course-10-practice
cd ~/linux-course-10-practice
pwd

pwd가 새 실습 디렉터리를 가리키는지 확인한 뒤 다음 명령으로 다섯 줄의 텍스트 파일을 만듭니다. printf의 \n은 줄바꿈이며, >는 표준 출력을 파일에 저장합니다. >는 대상 파일이 이미 있으면 내용을 덮어쓰므로 새 디렉터리에서만 실행하세요.

printf 'alpha\nbeta\ngamma\ndelta\nepsilon\n' > sample.txt

짧은 파일을 한꺼번에 읽기: cat

cat은 파일 내용을 표준 출력으로 보내므로 작은 텍스트 파일을 바로 확인하기 좋습니다. 방금 만든 파일에 실행하면 입력한 다섯 줄이 순서대로 나타납니다.

cat sample.txt

출력 예시:

alpha
beta
gamma
delta
epsilon

cat은 페이지를 나누거나 파일을 편집하지 않습니다. 매우 긴 파일에서는 내용이 화면을 빠르게 지나갈 수 있으므로 그럴 때는 less를 사용하세요. 텍스트가 아닌 바이너리 파일을 터미널에 무작정 출력하는 것도 피하는 편이 좋습니다.

긴 파일을 탐색하기: less와 more

less는 파일을 한 화면씩 보면서 위아래로 이동하고 검색할 수 있는 페이저입니다. less sample.txt를 실행한 뒤 Space로 다음 화면, b로 이전 화면, /gamma와 Enter로 검색, n으로 다음 일치 항목을 확인할 수 있습니다. 종료할 때는 q를 누릅니다.

less sample.txt

실습 파일은 한 화면보다 짧을 수 있어 페이지 이동의 효과가 잘 보이지 않습니다. 실제로 긴 로그나 설정 파일을 읽을 때 차이를 확인할 수 있습니다. less 안에서 누르는 키는 셸 명령이 아니므로 위 코드 블록에 이어 입력하지 마세요.

more도 긴 텍스트를 화면 단위로 보여 줍니다. 기본적인 다음 화면 이동은 Space, 종료는 q입니다. 구현과 환경에 따라 탐색 기능이 다르므로 앞뒤 이동과 검색이 필요하다면 보통 less가 편리합니다.

more sample.txt

앞부분과 뒷부분만 확인하기: head와 tail

파일 전체가 아니라 시작 부분만 필요하면 head, 끝부분만 필요하면 tail을 사용합니다. GNU 도구에서 -n 2는 두 줄을 뜻합니다.

head -n 2 sample.txt
tail -n 2 sample.txt

첫 명령의 출력은 alpha와 beta, 둘째 명령의 출력은 delta와 epsilon입니다.

alpha
beta
delta
epsilon

tail -f 파일은 파일 끝을 보여 준 뒤 새로 추가되는 내용을 계속 따라갑니다. 운영 중인 로그를 볼 때 유용하지만 화면이 계속 열려 있으므로 Ctrl+C로 종료해야 합니다. 로그가 교체·회전되는 환경에서는 GNU tail -F가 파일 이름을 다시 따라가는 데 적합할 수 있습니다. 파일 접근 권한이 없다면 내용을 읽을 수 없습니다.

상황별 선택과 확인할 점

필요한 작업 명령 이유
짧은 파일 전체 확인 cat 내용을 곧바로 출력
긴 파일 탐색·검색 less 화면 이동과 검색
간단한 페이지 단위 보기 more 기본적인 화면 단위 출력
처음 몇 줄 확인 head -n 파일 앞부분만 출력
마지막 몇 줄·추가 내용 확인 tail -n, tail -f 끝부분 또는 이후 추가분 확인

파일 이름만 보고 텍스트라고 확신할 수 없다면 앞선 파일 종류 강좌에서 다룬 file로 형식을 확인하세요. 특히 터미널 제어 문자가 섞인 파일은 화면 표시가 예상과 다를 수 있습니다. 이 강좌의 모든 읽기 명령은 원본 내용을 수정하지 않지만, 실습 파일을 만든 >는 파일을 덮어쓸 수 있다는 차이를 기억하세요.

공식 문서

GNU Coreutils 매뉴얼의 cat·head·tail 항목과 Bash 리디렉션 문서에서 명령과 파일 저장 동작을 확인할 수 있습니다. less·more의 키 동작은 설치된 시스템의 man less, man more도 참고하세요.

같은 카테고리의 다른 글
Linux / 디스크 관리 / 파티션, 포맷, 마운트

Linux / 디스크 관리 / 파티션, 포맷, 마운트

Linux에서 디스크를 관리할 때 필요한 파티션 생성, 파일 시스템 포맷, 마운트 방법을 정리했습니다.

Linux 강좌 / systemd 서비스와 부팅 로그 확인하기

Linux 강좌 / systemd 서비스와 부팅 로그 확인하기

리눅스 부팅 흐름과 systemd 유닛을 이해하고 서비스의 실행 상태와 자동 시작 설정을 구분합니다. systemctl과 journalctl로 상태·부팅 로그를 확인합니다.

Linux / 명령어 / cmp - 두 파일을 바이트 단위로 비교

Linux / 명령어 / cmp - 두 파일을 바이트 단위로 비교

Linux cmp 명령어로 두 파일을 바이트 단위로 비교하는 방법을 설명합니다. 첫 차이 위치, 조용한 검사, 모든 차이 출력과 종료 상태 활용법을 정리합니다.

Linux / 명령어 / tar - 여러 파일을 묶고 압축 아카이브 풀기

Linux / 명령어 / tar - 여러 파일을 묶고 압축 아카이브 풀기

Linux tar 명령어의 용도와 기본 문법을 알아봅니다. 파일 처리 예제, 주요 옵션과 원본 보존·덮어쓰기 주의점을 설명합니다.

Linux / 명령어 / uname - 커널과 시스템 아키텍처 확인

Linux / 명령어 / uname - 커널과 시스템 아키텍처 확인

Linux uname 명령어의 기능과 기본 문법을 설명합니다. 실제 사용 예제, 주요 옵션과 작업 전 확인할 점을 알아봅니다.

Linux / 명령어 / cat - 파일 내용 출력과 결합

Linux / 명령어 / cat - 파일 내용 출력과 결합

Linux cat 명령어로 텍스트 파일을 출력하고 여러 파일을 이어 붙이는 방법을 설명합니다. 줄 번호 표시, 빈 줄 압축, 리디렉션과 큰 파일 처리 시 주의점도 정리합니다.

Linux / 명령어 / renice - 실행 중인 프로세스 nice 값 변경

Linux / 명령어 / renice - 실행 중인 프로세스 nice 값 변경

Linux renice 명령어의 기본 문법과 실제 사용 예제를 설명합니다. 주요 옵션과 결과를 해석할 때 주의할 점을 확인할 수 있습니다.

Linux / 명령어 / fmt - 일반 텍스트 문단의 줄바꿈 조정

Linux / 명령어 / fmt - 일반 텍스트 문단의 줄바꿈 조정

Linux fmt 명령어의 기본 문법과 실제 사용 예제를 설명합니다. 주요 옵션과 결과를 해석할 때 주의할 점을 확인할 수 있습니다.

Linux / 명령어 / mktemp - 안전한 임시 파일과 디렉터리 생성

Linux / 명령어 / mktemp - 안전한 임시 파일과 디렉터리 생성

Linux mktemp 명령어로 예측하기 어려운 이름의 임시 파일과 디렉터리를 안전하게 만드는 방법을 설명합니다. 템플릿, TMPDIR, trap을 이용한 정리와 -u 옵션의 위험도 알아봅니다.

Linux / 명령어 / chgrp - 파일 소유 그룹 변경

Linux / 명령어 / chgrp - 파일 소유 그룹 변경

Linux chgrp 명령어의 기본 문법과 실제 사용 예제를 설명합니다. 주요 옵션과 결과를 해석할 때 주의할 점을 확인할 수 있습니다.