본문 바로가기
IT/리눅스 명령어

[Linux] 리눅스 서버 기본 명령어 tail 명령어 옵션 사용법 총정리

by 꾸꾸웍스 2022. 4. 15.
반응형

[Linux] 리눅스 서버 기본 명령어 tail 명령어 옵션 사용법 총정리


 


 

※ 목차

1. 리눅스 tail 명령어란???
2. 리눅스 tail 명령어 사용법
3. 리눅스 tail 명령어 옵션
4. 리눅스 tail 명령어 옵션 사용법

 


1. 리눅스 tail 명령어란???

tail은 우리말로 꼬리라는 뜻으로 파일의 마지막 부분을 출력해 주는 명령어 입니다.
  • tail 명령어는 파일의 마지막 부분을 출력하고 head 명령어는 파일의 앞부분을 출력합니다.
  • 보통 실시간으로 로그를 쌓이는 것을 볼때나 자주 사용하는 파일의 마지막 부분이 수정되었는지
    확인이 가능하며 파이프와 함께 자주 사용하기도 합니다.
  • tail 명령어는 옵션 없이 사용하면 지정한 파일의 마지막 부분의 10줄을 기본으로 출력하게 됩니다.
    지정한 파일이 10줄이 되지 않는다면 모두 출력합니다.
  • 주로 텍스트 파일로 된 파일의 전체 내용 중 마지막 부분을 출력해주며 binary로 된 파일은
    출력이 되지만 알아볼 수 없는 문자로 출력해 주기 때문에 텍스트 파일로 된 파일 출력을 권장합니다.

2. 리눅스 tail 명령어 사용법

tail [옵션] [파일]
tail [option] [file]...
  • 옵션을 지정하지 않으면 지정한 파일의 마지막 부분 10줄을 기본적으로 출력하게 됩니다.
### file.txt에는 001부터 100까지 총 100줄의 파일이 존재
[ server 2022-04-15 14:03:31 ] ~/testdir
user@server # wc -l file.txt
100 file.txt

### tail로 옵션없이 사용하면 마지막 10줄 출력
[ server 2022-04-15 14:03:37 ] ~/testdir
user@server # tail file.txt
091
092
093
094
095
096
097
098
099
100

  • 파일을 한개 또는 여러개를 지정할 수 있습니다
    • 파일을 여러개 지정하면 파일명이 각 파일 맨 앞에 기본으로 출력됩니다
### file.txt와 file1.txt는 같은 내용의 이름 다른 파일
[ server 2022-04-15 14:07:04 ] ~/testdir
user@server # tail file.txt file1.txt
==> file.txt <==
091
092
093
094
095
096
097
098
099
100

==> file1.txt <==
091
092
093
094
095
096
097
098
099
100

  • 파이프를 이용하여 다른 명령어와 사용 할 수 있습니다.
    • 파이프의 기호는 | 이며, 키보드의 shift+\ 버튼을 입력하면 됩니다.
[ server 2022-04-15 14:28:39 ] ~/testdir
user@server # cat file1.txt | tail
091
092
093
094
095
096
097
098
099
100

 

3. 리눅스 tail 명령어 옵션

번호 옵션 long 옵션 설명
1 -{NUM} - 파일의 마지막 부분을 지정한 숫자만큼 출력합니다.
2 -c --bytes=K 지정한 바이트 수 만큼 파일의 마지막 부분을 출력합니다.
3 -f --follow[={name|descriptor}] 지정한 파일의 추가 된 데이터를 실시간으로 출력합니다.
4 -F - -f 옵션의 long 옵션과 같습니다.
5 -n --lines=K 파일의 마지막 부분을 지정한 라인 만큼 출력합니다.
6 - --max-unchanged-stats=N -파일이 변경되지 않아도 n번 후에 다시 확인합니다. (with -f)
7 - --pid=PID pid를 지정 할 수 있습니다. (with -f)
8 -q --quiet, --silent 파일 내용이 출력되기 전 파일명을 출력하지 않습니다.
9 - --retry 접근 할 수 없는 상황이 되었을때 파일을 읽으려고 시도합니다. (with -f)
10 -s --sleep-interval=N 지정한 파일을 n 초만큼 sleep 상태였다가 다시 확인합니다. (with -f)
11 -v --verbose 파일 내용이 출력되기 전 파일명을 출력합니다.
12 - --help tail 명령어의 사용법을 출력합니다.
13 - --version tail 명령어의 버전을 출력합니다.

4. 리눅스 tail 명령어 옵션 사용법

tail -{NUM} 옵션 사용법
  • 지정 한 숫자 만큼 파일의 마지막 부분을 출력합니다.
### 001부터 100까지 100줄이 있는 file1.txt 파일

[ server 2022-04-15 14:46:03 ] ~/testdir
user@server # wc -l file1.txt
100 file1.txt

### -5 옵션으로 마지막 5줄 출력
[ server 2022-04-15 14:46:13 ] ~/testdir
user@server # tail -5 file1.txt
096
097
098
099
100

### -2 옵션으로 마지막 2줄 출력
[ server 2022-04-15 14:46:23 ] ~/testdir
user@server # tail -2 file1.txt
099
100

 

tail -c 옵션 사용법
  • 마지막 부분의 저장한 바이트 수 만큼 출력합니다
    • -c {숫자}를 입력시 마지막 부분의 해당하는 바이트 크기 만큼 출력합니다
    • -c +{숫자}를 입력시 앞 부분의 해당하는 바이트 크기 만큼 제외하고 나머지를 출력합니다
### 0부터 10까지 총 11줄이있는 file.txt 파일

[ server 2022-04-15 14:50:35 ] ~/testdir
user@server # wc -l file.txt
11 file.txt

### -c 10을 사용해 마지막 10 바이트 크기만큼 출력
[ server 2022-04-15 14:50:37 ] ~/testdir
user@server # tail -c 10 file.txt

7
8
9
10

### -c +10을 사용해 앞부분의 10 바이트를 제외하고 출력
[ server 2022-04-15 14:51:04 ] ~/testdir
user@server # tail -c +10 file.txt

5
6
7
8
9
10

tail -f 옵션 사용법
  • 지정한 파일의 추가 된 데이터를 실시간으로 출력합니다.
    • --follow=name --retry와 같은 결과이며 다른 곳에서 같은 파일을 업데이트시 내용이 출력됩니다.

  • 위 그림은 터미널 2개 중 왼쪽 터미널은 tail -f 옵션으로 새로운 파일이 갱신 될 때마다 실시간으로 볼 수 있게하였고 오른쪽 터미널에는 왼쪽터미널 -f옵션 사용의 파일에 대해 새로운 라인을 넣는 작업입니다.

  • 위 그림 같이 오른쪽 터미널의 명령어로 파일이 갱신이 되면 왼쪽 터미널 내용에 새로운 내용이 출력됩니다.

tail -F 옵션 사용법

 

  • --follow=name --retry와 같은 결과이며  사용법은 -f 옵션과 같습니다

 

tail -n 옵션 사용법
  • 파일의 마지막 부분을 지정한 라인 만큼 출력합니다.
    • -n {숫자}를 사용시 마지막 라인 기준으로 지정한 숫자 만큼 출력합니다.
    • -n +{숫자}를 사용시 초반부 라인 기준으로 지정한 숫자 만큼 제외하고 출력합니다.
### 0부터 10까지 총 11줄이 작성되어있는 file.txt 파일

[ server 2022-04-15 16:21:28 ] ~/testdir
user@server # wc -l file.txt
11 file.txt

### -n 3을 사용하여 마지막 3줄 만 출력합니다
[ server 2022-04-15 16:21:30 ] ~/testdir
user@server # tail -n 3 file.txt
8
9
10

### -n +5 옵션을 사용하여 초반부 5줄을 제외하고 출력합니다.
[ server 2022-04-15 16:21:33 ] ~/testdir
user@server # tail -n +5 file.txt
4
5
6
7
8
9
10

tail --max-unchanged-stats=N 옵션 사용법
  • -f 옵션과 함께 사용하며 파일이 변경되지 않더라도 지정한 N번 만큼 파일을 다시 확인합니다.
    • 지정한 N의 기본값은 5이며 반복 후에도 크기가 변경되지 않은 file을 다시 열어 변경 상태를 확인 합니다.
[ server 2022-04-15 16:38:14 ] ~/testdir
user@server # tail -f --max-unchanged-stats=10 file1.txt
test file
This is test file

tail --pid 옵션 사용법
  • -f 옵션과 함께 사용하며 pid를 지정할 수 있으며 지정한 pid가 종료가 되면 tail -f도 같이 종료됩니다.
    • A라는 프로세스의 ID가 8838이라고 가정하고 tail -f file.txt --pid 8838 이라는 명령을 하면
      file.txt는 실시간으로 창이 보이면서 이 프로세스가 종료 권한은 8838에게 따릅니다.
### test_script.sh는 1초간 sleep을 반복하는 스크립트를 백그라운드(&)로 실행하여 pid값을 확인

[ server 2022-04-15 16:38:53 ] ~/testdir
user@server # ./test_script.sh &
[1] 59517

### -f 옵션을 함께 사용하여 위 스크립트의 프로세스를 옵션으로 사용
[ server 2022-04-15 16:38:57 ] ~/testdir
user@server # tail -f file1.txt --pid 59517
test file
This is test file
Killed					#### 다른 터미널에서 'kill 59517' 명령을 하여 tail -f 가 종료됨

tail -q 옵션 사용법
  • 가장 첫줄에 파일명을 출력하지 않습니다.
### -q 옵션을 사용하지 않으면 두개 파일을 출력 시 파일명 출력
[ server 2022-04-15 16:46:10 ] ~/testdir
user@server # tail file1.txt file.txt
==> file1.txt <==
test file
This is test file

==> file.txt <==
1
2
3
4
5
6
7
8
9
10

### -q 옵션을 사용하여 두개 파일 출력시 파일명 출력하지 않음
[ server 2022-04-15 16:46:15 ] ~/testdir
user@server # tail -q file1.txt file.txt
test file
This is test file
1
2
3
4
5
6
7
8
9
10

tail --retry 옵션 사용법
  • 지정한 파일이 접근할 수 없는 상황이 되었을때 파일을 읽으려고 시도합니다.
    • --follow=name과 같이 사용하며 -f 옵션과 동일한 결과를 나타냅니다.

tail -s 옵션 사용법
  • -f 옵션과 함께 사용하며 해당파일을 확인 할 때 N초 만큼 sleep 상태였다가 파일을 확인 합니다.
    • 아래 예시는 pid와 함께 사용하였습니다.
### sleep 1상태의 무한 반복하는 프로그램을 백그라운드로 실행하여 pid를 확인
[ server 2022-04-15 16:54:05 ] ~/testdir
user@server # ./test_script.sh &
[1] 72058

### -s 옵션으로 10초를 설정하여 위 프로세스가 종료 및 강제종료가 되어도 10초 sleep 상태 유지
[ server 2022-04-15 16:54:09 ] ~/testdir
user@server # tail -f file1.txt --pid 72058 --sleep-interval=10
test file
This is test file
[1]+  Killed                  ./test_script.sh 			### 10초 후 tail 명령어 종료

tail -v 옵션 사용법
  • 가장 첫줄에 파일명을 출력합니다.
[ server 2022-04-15 16:57:58 ] ~/testdir
user@server # tail file.txt
1
2
3
4
5
6
7
8
9
10

### -v 옵션을 사용하여 출력되기전 파일명 출력
[ server 2022-04-15 16:58:02 ] ~/testdir
user@server # tail -v file.txt
==> file.txt <==
1
2
3
4
5
6
7
8
9
10

tail --help 옵션과 --version 옵션 사용법
  • --help 옵션은 tail 명령어의 사용법을 출력합니다.
  • --version 옵션은 tail 명령어의 버전을 출력합니다.
### --help 옵션 사용 예시
[ server 2022-04-15 16:59:35 ] ~/testdir
user@server # tail --help
Usage: tail [OPTION]... [FILE]...
Print the last 10 lines of each FILE to standard output.
With more than one FILE, precede each with a header giving the file name.
With no FILE, or when FILE is -, read standard input.

Mandatory arguments to long options are mandatory for short options too.
  -c, --bytes=K            output the last K bytes; or use -c +K to output
                             bytes starting with the Kth of each file
  -f, --follow[={name|descriptor}]
                           output appended data as the file grows;
                             an absent option argument means 'descriptor'
  -F                       same as --follow=name --retry
  -n, --lines=K            output the last K lines, instead of the last 10;
                             or use -n +K to output starting with the Kth
      --max-unchanged-stats=N
                           with --follow=name, reopen a FILE which has not
                             changed size after N (default 5) iterations
                             to see if it has been unlinked or renamed
                             (this is the usual case of rotated log files);
                             with inotify, this option is rarely useful
      --pid=PID            with -f, terminate after process ID, PID dies
  -q, --quiet, --silent    never output headers giving file names
      --retry              keep trying to open a file if it is inaccessible
  -s, --sleep-interval=N   with -f, sleep for approximately N seconds
                             (default 1.0) between iterations;
                             with inotify and --pid=P, check process P at
                             least once every N seconds
  -v, --verbose            always output headers giving file names
      --help     display this help and exit
      --version  output version information and exit

If the first character of K (the number of bytes or lines) is a '+',
print beginning with the Kth item from the start of each file, otherwise,
print the last K items in the file.  K may have a multiplier suffix:
b 512, kB 1000, K 1024, MB 1000*1000, M 1024*1024,
GB 1000*1000*1000, G 1024*1024*1024, and so on for T, P, E, Z, Y.

With --follow (-f), tail defaults to following the file descriptor, which
means that even if a tail'ed file is renamed, tail will continue to track
its end.  This default behavior is not desirable when you really want to
track the actual name of the file, not the file descriptor (e.g., log
rotation).  Use --follow=name in that case.  That causes tail to track the
named file in a way that accommodates renaming, removal and creation.

GNU coreutils online help: <http://www.gnu.org/software/coreutils/>
For complete documentation, run: info coreutils 'tail invocation'


### version 옵션 사용법
[ server 2022-04-15 16:59:39 ] ~/testdir
user@server # tail --version
tail (GNU coreutils) 8.22
Copyright (C) 2013 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>.
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

Written by Paul Rubin, David MacKenzie, Ian Lance Taylor,
and Jim Meyering.

 


 

반응형
그리드형

댓글