Linux 파일 끝 표시

LinuxBeginner
지금 연습하기

소개

이 랩에서는 Linux 에서 tail 명령어를 사용하는 방법을 배우게 됩니다. tail 명령어는 텍스트 파일의 마지막 부분을 표시하는 데 사용되는 필수 유틸리티로, 로그 파일의 최근 항목을 보거나, 대용량 문서의 마지막 몇 줄을 읽거나, 파일 변경 사항을 모니터링하는 데 특히 유용합니다. 이 랩에서는 tail 명령어를 사용하는 다양한 방법을 안내하여 이 중요한 Linux 도구를 능숙하게 사용할 수 있도록 돕습니다.

tail 명령어 기본 사용법

이 단계에서는 간단한 텍스트 파일을 생성하고 내용을 검토하여 tail 명령어의 기본 사용법을 배우게 됩니다.

먼저, 프로젝트 디렉토리로 이동해 보겠습니다.

cd ~/project

이제 echo 명령어를 사용하여 여러 줄의 샘플 텍스트 파일을 생성해 보겠습니다.

echo -e "Line 1: Introduction to Linux commands\nLine 2: File manipulation basics\nLine 3: Text processing utilities\nLine 4: The tail command overview\nLine 5: Reading the end of files" > sample.txt

-e 옵션은 백슬래시 이스케이프를 해석하여 새 줄에 \n을 사용할 수 있도록 합니다.

파일 내용을 확인하려면 cat 명령어를 사용하여 전체 파일을 표시합니다.

cat sample.txt

다음과 같은 출력이 표시되어야 합니다.

Line 1: Introduction to Linux commands
Line 2: File manipulation basics
Line 3: Text processing utilities
Line 4: The tail command overview
Line 5: Reading the end of files

이제 tail 명령어를 사용하여 파일의 마지막 줄을 표시해 보겠습니다.

tail -n 1 sample.txt

-n 1 옵션은 tail에게 파일의 마지막 줄만 표시하도록 지시합니다. 다음을 보게 될 것입니다.

Line 5: Reading the end of files

이것이 tail 명령어의 기본 사용법입니다. 다음 단계에서는 더 고급 옵션을 살펴보겠습니다.

tail 명령어로 여러 줄 보기

이 단계에서는 tail 명령어를 사용하여 파일의 끝에서 여러 줄을 표시하는 방법을 배우게 됩니다.

먼저 샘플 파일에 더 많은 내용을 추가해 보겠습니다. 기존 파일에 다섯 줄을 더 추가합니다.

echo -e "Line 6: Displaying multiple lines\nLine 7: Command options and parameters\nLine 8: Practical applications\nLine 9: Log file examination\nLine 10: Continuous monitoring" >> sample.txt

>> 연산자는 기존 파일을 덮어쓰지 않고 새 내용을 추가합니다.

이제 파일에 10 줄이 있는지 확인해 보겠습니다.

cat sample.txt

10 줄 모두 표시되어야 합니다.

Line 1: Introduction to Linux commands
Line 2: File manipulation basics
Line 3: Text processing utilities
Line 4: The tail command overview
Line 5: Reading the end of files
Line 6: Displaying multiple lines
Line 7: Command options and parameters
Line 8: Practical applications
Line 9: Log file examination
Line 10: Continuous monitoring

이제 tail 명령어를 사용하여 파일의 마지막 3 줄을 표시해 보겠습니다.

tail -n 3 sample.txt

다음과 같이 표시되어야 합니다.

Line 8: Practical applications
Line 9: Log file examination
Line 10: Continuous monitoring

-n 옵션에 대한 더 짧은 구문을 사용할 수도 있습니다.

tail -3 sample.txt

이것은 이전 명령어와 동일한 출력을 생성합니다.

Line 8: Practical applications
Line 9: Log file examination
Line 10: Continuous monitoring

-n 옵션의 숫자를 변경하여 파일의 끝에서 몇 줄을 볼지 제어할 수 있습니다.

tail 명령어를 사용한 실시간 파일 모니터링

tail 명령어의 가장 강력한 기능 중 하나는 파일을 실시간으로 모니터링하는 기능입니다. 이는 로그 파일이 기록되는 동안 이를 감시하는 데 특히 유용합니다.

계속 업데이트되는 로그 파일을 시뮬레이션하는 간단한 스크립트를 만들어 보겠습니다.

cd ~/project

log_generator.sh라는 이름의 스크립트 파일을 생성합니다.

nano log_generator.sh

다음 내용을 스크립트에 추가합니다.

#!/bin/bash
for ((i = 1; i <= 10; i++)); do
  echo "[$(date '+%Y-%m-%d %H:%M:%S')] Log entry $i: System event recorded" >> simulation.log
  sleep 2
done

Ctrl+O를 누르고 Enter를 눌러 파일을 저장한 다음, Ctrl+X로 nano 를 종료합니다.

스크립트를 실행 가능하게 만듭니다.

chmod +x log_generator.sh

이제 -f 옵션과 함께 tail 명령어를 사용하여 로그 파일을 실시간으로 모니터링해 보겠습니다. -f 옵션은 "follow"를 의미하며, tail이 변경 사항을 계속 모니터링하도록 합니다.

작업 표시줄에서 터미널 아이콘을 클릭하여 새 터미널 창을 엽니다 (또는 키보드 단축키 Ctrl+Alt+T를 사용). 새 터미널에서 다음을 실행합니다.

cd ~/project
tail -f simulation.log

이제 원래 터미널 창으로 돌아가서 로그 생성기 스크립트를 실행합니다.

./log_generator.sh

tail -f를 실행하고 있는 터미널에서 2 초마다 새로운 로그 항목이 표시되는 것을 볼 수 있습니다.

[2023-11-01 12:34:56] Log entry 1: System event recorded
[2023-11-01 12:34:58] Log entry 2: System event recorded
[2023-11-01 12:35:00] Log entry 3: System event recorded
...

스크립트가 완료된 후 (약 20 초 후), tail -f가 실행 중인 터미널로 돌아가 Ctrl+C를 눌러 모니터링을 중지합니다.

이 실시간 모니터링 기능은 오류 또는 중요한 이벤트를 위해 로그 파일을 감시해야 하는 시스템 관리자에게 tail -f를 매우 유용한 도구로 만들어 줍니다.

tail 고급 옵션 사용법

이 단계에서는 다양한 시나리오에서 유용할 수 있는 tail 명령어의 몇 가지 고급 옵션에 대해 배우게 됩니다.

줄 대신 마지막 N 바이트 보기

때로는 마지막 N 줄 대신 파일의 마지막 N 바이트를 보고 싶을 수 있습니다. 이를 위해 -c 옵션 ( "bytes"의 약자) 을 사용할 수 있습니다.

새로운 테스트 파일을 만들어 보겠습니다.

cd ~/project
echo "This is a test file to demonstrate byte-based viewing with the tail command. The tail command is versatile and can display content based on bytes instead of lines." > bytes_test.txt

이제 이 파일의 마지막 20 바이트를 보겠습니다.

tail -c 20 bytes_test.txt

다음과 유사한 출력을 볼 수 있습니다 (약간 다를 수 있음).

instead of lines.

tail 출력에 사용자 정의 헤더 사용

파일의 마지막 부분을 볼 때, 무엇을 보고 있는지 상기시키기 위해 출력에 사용자 정의 헤더를 추가하는 것이 도움이 될 수 있습니다. echo 명령어를 tail과 함께 사용하여 이를 수행할 수 있습니다.

echo -e "=== Last 3 lines of sample.txt ===\n$(tail -n 3 sample.txt)"

다음과 같이 표시되어야 합니다.

=== Last 3 lines of sample.txt ===
Line 8: Practical applications
Line 9: Log file examination
Line 10: Continuous monitoring

여러 파일 동시 보기

tail 명령어는 여러 파일의 마지막 줄을 한 번에 표시할 수도 있습니다.

다른 파일을 만들어 보겠습니다.

echo -e "Alpha\nBeta\nGamma\nDelta\nEpsilon" > greek.txt

이제 tail을 사용하여 두 파일의 마지막 2 줄을 봅니다.

tail -n 2 sample.txt greek.txt

다음과 같이 표시되어야 합니다.

==> sample.txt <==
Line 9: Log file examination
Line 10: Continuous monitoring

==> greek.txt <==
Delta
Epsilon

이러한 고급 옵션은 tail 명령어를 다양한 파일 보기 작업에 더욱 다재다능하고 유용하게 만듭니다.

요약

이 랩에서는 파일의 끝 부분을 보기 위한 강력한 Linux 유틸리티인 tail 명령어를 사용하는 방법을 배웠습니다. 다음은 수행한 작업에 대한 요약입니다.

  1. 기본 사용법: tail -n 1을 사용하여 파일의 마지막 줄을 표시하는 방법을 배웠습니다.

  2. 여러 줄: tail -n N 또는 단축형 tail -N을 사용하여 파일 끝에서 여러 줄을 보는 방법을 배웠습니다.

  3. 실시간 모니터링: 로그 파일 분석에 중요한, 파일이 업데이트되는 동안 tail -f를 사용하여 파일을 모니터링하는 연습을 했습니다.

  4. 고급 옵션: tail -c N으로 마지막 N 바이트 보기, 출력에 사용자 정의 헤더 추가, 여러 파일의 끝을 동시에 표시하는 것과 같은 더 고급 옵션을 탐색했습니다.

이러한 기술은 시스템 관리자, 개발자 및 Linux 시스템으로 작업하는 모든 사람에게 매우 중요합니다. tail 명령어는 문제 해결, 로그 파일 모니터링, 파일을 완전히 열지 않고도 대용량 파일의 최신 데이터를 빠르게 검사하는 데 특히 유용합니다.

Linux 여정을 계속 진행하면서 tail 명령어가 파이프 및 리디렉션을 통해 다른 Linux 유틸리티와 결합될 때 특히 명령줄 도구 상자에서 필수적인 도구가 될 것입니다.