
리눅스 tail 명령은 파일 끝의 데이터를 표시합니다. 파일에 추가 된 업데이트를 실시간으로 표시 할 수도 있습니다. 우리는 그것을 사용하는 방법을 보여줍니다.
체계적으로 꼬리를 죽였습니까?
그만큼 tail 명령은 파일 끝의 데이터를 보여줍니다. 일반적으로 새 데이터는 파일 끝에 추가되므로 tail 명령은 가장 최근에 추가 된 파일을 볼 수있는 빠르고 쉬운 방법입니다. 또한 파일을 모니터하고 파일이 발생할 때마다 새 텍스트 항목을 해당 파일에 표시 할 수 있습니다. 이것은 로그 파일을 모니터하는 훌륭한 도구입니다.
많은 현대 리눅스 배포판은 systemd 시스템 및 서비스 관리자. 이것은 첫 번째로 실행되는 프로세스이며 프로세스 ID 1을 가지며 다른 모든 프로세스의 상위 프로세스입니다. 이 역할은 예전의 init 체계.
이 변경과 함께 새로운 형식의 시스템 로그 파일이 제공되었습니다. 더 이상 일반 텍스트로 작성되지 않음 systemd 그들은 이진 형식으로 기록됩니다. 이 로그 파일을 읽으려면 journactl 유용. 그만큼 tail 명령은 일반 텍스트 형식으로 작동합니다. 이진 파일을 읽지 않습니다. 이것이 의미하는 것은 tail 명령은 문제를 찾는 해결책입니까? 여전히 제공 할 것이 있습니까?
더 많은 것이 있습니다 tail 업데이트를 실시간으로 표시하는 것보다 그리고 그 문제에 대해 시스템에서 생성되지 않고 여전히 일반 텍스트 파일로 생성되는 많은 로그 파일이 있습니다. 예를 들어, 응용 형식을 변경하지 않았습니다.
꼬리를 사용하여
파일 이름을 tail 해당 파일의 마지막 10 줄을 보여줍니다. 우리가 사용하는 예제 파일에는 정렬 된 단어 목록이 포함되어 있습니다. 각 줄에는 번호가 매겨져 있으므로 예제를 쉽게 따르고 다양한 옵션이 어떤 영향을 미치는지 알 수 있어야합니다.
tail word-list.txt

다른 줄 수를 보려면 -n (라인 수) 옵션 :
tail -n 15 word-list.txt

실제로“-n”을 생략하고 하이픈“-”과 숫자 만 사용할 수 있습니다. 사이에 공백이 없는지 확인하십시오. 기술적으로이 명령은 더 이상 사용되지 않는 명령 양식이지만 여전히 맨 페이지에 있으며 여전히 작동합니다.
tail -12 word-list.txt

여러 파일에 꼬리 사용
당신은 할 수 있습니다 tail 한 번에 여러 파일로 작업하십시오. 명령 행에서 파일 이름을 전달하십시오.
tail -n 4 list-1.txt list-2.txt list-3.txt

각 파일에 작은 헤더가 표시되어 해당 줄이 속한 파일을 알 수 있습니다.
파일의 시작부터 줄 표시
그만큼 + (시작부터 계산) 수정 자 tail 특정 줄 번호에서 시작하여 파일의 시작 부분부터 줄을 표시합니다. 파일이 매우 길고 파일의 시작 부분에 가까운 줄을 선택하면 많은 출력이 터미널 창으로 전송됩니다. 이 경우 출력을 파이프로 연결하는 것이 좋습니다 tail 으로 less.
tail +440 list-1.txt

제어 된 방식으로 텍스트를 페이징 할 수 있습니다.

이 파일에는 20,445 줄이 있으므로이 명령은“-6”옵션을 사용하는 것과 같습니다.
tail +20440 list-1.txt

꼬리와 함께 바이트 사용
당신을 말할 수있다 tail 를 사용하여 줄 대신 오프셋을 바이트 단위로 사용하려면 -c (바이트) 옵션. 이것은 일정한 크기의 레코드로 포맷 된 텍스트 파일이있는 경우 유용 할 수 있습니다. 개행 문자는 1 바이트로 계산됩니다. 이 명령은 파일에서 마지막 93 바이트를 표시합니다.
tail -c 93 list-2.txt

당신은 결합 할 수 있습니다 -c (바이트) 옵션 + (파일 시작부터 계산) 수정자를 지정하고 파일 시작부터 계산 된 오프셋을 바이트 단위로 지정하십시오.
tail -c +351053 list-e.txt

꼬리로 배관
앞서 우리는 tail 으로 less . 다른 명령의 출력을 tail.
가장 오래된 수정 시간을 가진 5 개의 파일 또는 폴더를 식별하려면 -t (수정 시간별로 정렬) 옵션 ls 출력을 파이프에 tail.
ls -tl | tail -5

그만큼 head 명령은 파일 시작 부분의 텍스트 줄을 나열합니다. 우리는 이것을 결합 할 수 있습니다 tail 파일의 섹션을 추출합니다. 여기서는 head 파일에서 처음 200 줄을 추출하는 명령입니다. 이것은 안으로 배관되고 있습니다 tail마지막 10 줄을 추출합니다. 이것은 우리에게 191 행에서 200 행까지를줍니다. 즉, 첫 200 행의 마지막 10 행 :
head -n 200 list-1.txt | tail -10

이 명령은 5 개의 메모리 부족 프로세스를 나열합니다.
ps aux | sort -nk +4 | tail -5

세분화합시다.
그만큼 ps 명령은 실행중인 프로세스에 대한 정보를 표시합니다. 사용되는 옵션은 다음과 같습니다.
- ㅏ: 현재 사용자뿐만 아니라 모든 프로세스를 나열합니다.
- 유: 사용자 지향 출력을 표시합니다.
- 엑스: TTY 내부에서 실행되지 않는 프로세스를 포함하여 모든 프로세스를 나열하십시오.
그만큼 sort 명령은 출력을 정렬합니다 ps . 우리가 사용하는 옵션 sort 아르:
- 엔: 숫자로 정렬합니다.
- k +4: 네 번째 열을 기준으로 정렬합니다.
그만큼 tail -5 명령은 정렬 된 출력에서 마지막 5 개의 프로세스를 표시합니다. 이들은 5 개의 메모리를 많이 소비하는 프로세스입니다.
tail을 사용하여 실시간으로 파일 추적
파일에 도착하는 새로운 텍스트 항목 (일반적으로 로그 파일)을 쉽게 추적 할 수 있습니다. tail. 명령 행에서 파일 이름을 전달하고 -f (따라) 옵션.
tail -f geek-1.log

각각의 새 로그 항목이 로그 파일에 추가되면 tail은 터미널 창에 표시를 업데이트합니다.

특정 관련성 또는 관심있는 라인 만 포함하도록 출력을 세분화 할 수 있습니다. 여기서는 grep “평균”이라는 단어가 포함 된 줄만 표시하려면 :
tail -f geek-1.log | grep average

둘 이상의 파일을 변경하려면 명령 행에서 파일 이름을 전달하십시오.
tail -f -n 5 geek-1.log geek-2.log

각 항목에는 텍스트가 나온 파일을 나타내는 헤더가 표시됩니다.

새 항목이 후속 파일에 도착할 때마다 표시가 업데이트됩니다. 업데이트 기간을 지정하려면 -s (수면 기간) 옵션. 이것은 알려줍니다 tail 이 예에서는 5 초 동안 파일 검사 사이에 몇 초 동안 대기합니다.
tail -f -s 5 geek-1.log

물론 스크린 샷을 보면 알 수 없지만 업데이트는 파일로 2 초마다 한 번씩 발생합니다. 새로운 파일 항목이 터미널 창에 표시 5 초마다 한 번씩

둘 이상의 파일에 텍스트 추가를 수행 할 때 텍스트의 출처를 나타내는 헤더를 표시하지 않을 수 있습니다. 사용 -q (조용한) 옵션 :
tail -f -q geek-1.log geek-2.log

파일의 출력이 텍스트의 완벽한 혼합으로 표시됩니다. 각 항목이 어느 로그 파일에서 왔는지 표시되지 않습니다.

꼬리는 여전히 가치가있다
이제 시스템 로그 파일에 대한 액세스가 제공되지만 journalctl, tail 여전히 제공 할 것이 많습니다. 다른 명령과 함께 사용하거나 파이프에 연결하여 사용하는 경우에 특히 그렇습니다. tail.
systemd 환경을 바꿔 놓았을지 모르지만, 한 가지 일을 잘 수행한다는 유닉스 철학에 부합하는 전통적인 유틸리티가 여전히 존재합니다.








