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 / 명령어 / which - PATH에서 실행 파일 경로 찾기

Linux / 명령어 / which - PATH에서 실행 파일 경로 찾기

Linux which 명령어로 PATH에서 실행 파일 경로를 찾는 방법을 설명합니다. type과 command -v의 차이, 별칭·함수 확인과 스크립트 이식성도 정리합니다.

Linux / 리눅스 디렉토리 구조와 주요 디렉토리별 용도

Linux / 리눅스 디렉토리 구조와 주요 디렉토리별 용도

리눅스의 /etc, /var, /usr, /home, /proc, /dev 등 주요 디렉토리별 용도와 이름의 의미를 정리합니다. 리눅스 파일시스템 구조를 처음 배우거나 서버 관리에 필요한 디렉토리를 확인할 때 참고할 수 있습니다.

Linux / 리눅스 역사 - 1991년 취미 프로젝트가 세계 인프라가 되기까지

Linux / 리눅스 역사 - 1991년 취미 프로젝트가 세계 인프라가 되기까지

리눅스는 1991년 시작된 커널 프로젝트에서 서버·클라우드·모바일을 떠받치는 기반 기술로 성장했습니다. UNIX와 GNU의 배경부터 배포판과 공동 개발 생태계의 확장까지 핵심 연표로 정리합니다.

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

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

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

Linux / 명령어 / w - 로그인 사용자와 실행 중인 작업 확인

Linux / 명령어 / w - 로그인 사용자와 실행 중인 작업 확인

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

Linux / 명령어 / dmesg - 커널 메시지와 부팅 로그 확인

Linux / 명령어 / dmesg - 커널 메시지와 부팅 로그 확인

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

Linux / 명령어 / su - 사용자 계정 전환

Linux / 명령어 / su - 사용자 계정 전환

Linux su 명령어로 다른 사용자 권한의 셸과 단일 명령을 실행하는 방법을 설명합니다. su와 su --login 차이, 환경 변수, PAM 인증, sudo·runuser 선택 기준과 보안 주의사항을 정리합니다.

Linux / 명령어 / man - 명령어 매뉴얼 확인

Linux / 명령어 / man - 명령어 매뉴얼 확인

man 명령어로 리눅스 매뉴얼을 읽고 검색하는 방법을 설명합니다. 매뉴얼 섹션, 화면 이동, 키워드 검색, 셸 내장 명령 확인과 문서가 없을 때의 해결 방법을 함께 정리합니다.

Linux 강좌 / 파일 시스템 이해하기 - 절대·상대 경로와 주요 디렉터리

Linux 강좌 / 파일 시스템 이해하기 - 절대·상대 경로와 주요 디렉터리

리눅스 파일 시스템의 트리 구조와 절대·상대 경로를 이해하고, /home·/etc·/var 등 주요 디렉터리의 역할과 경로를 읽는 방법을 익힙니다.

Linux 강좌 / PID와 PPID 이해하기 - 프로세스 확인과 관리

Linux 강좌 / PID와 PPID 이해하기 - 프로세스 확인과 관리

PID와 PPID의 의미와 부모·자식 프로세스의 관계를 설명합니다. ps와 pgrep으로 확인하고, 직접 만든 실습 프로세스를 안전하게 종료하는 방법을 익힙니다.