Как да използвате командата tail в Linux

Командата Linux tail показва данни от края на файл. Той дори може да показва актуализации, които се добавят към файл в реално време. Ние ви показваме как да го използвате.

systemd Kill tail?

Командата tail ви показва данни от края на файл. Обикновено нови данни се добавят в края на файл, така че командата tail е бърз и лесен начин да видите най-новите допълнения към файл. Той може също да наблюдава файл и да показва всеки нов текстов запис в този файл, когато се появи. Това го прави чудесен инструмент за наблюдение на регистрационни файлове.

Много съвременни дистрибуции на Linux са приели системния и сервизния мениджър на systemd. Това е първият процес, който се изпълнява ID на процеса 1, и е родител на всички други процеси. Тази роля беше обработвани от по-възрастните инициална система.

Заедно с тази промяна дойде нов формат за системните регистрационни файлове. Вече не се създават в обикновен текст, под systemd те се записват в двоичен формат. Да се прочетете тези регистрационни файлове, трябва да използвате помощната програма journactl. Командата tail работи с обикновени текстови формати. Не чете двоични файлове. Това означава ли, че командата tail е решение при търсене на проблем? Има ли още какво да предложи?

Командата tail е нещо повече от това да показва актуализации в реално време. И по този въпрос, все още има много регистрационни файлове, които не са генерирани от системата и все още се създават като обикновени текстови файлове. Например, регистрационните файлове, генерирани от приложения, не са променили формата си.

  5 най-добри докинг станции за лаптоп за използване с Linux (издание 2021)

Използване на опашка

Предайте името на файл на опашка и то ще ви покаже последните десет реда от този файл. Примерните файлове, които използваме, съдържат списъци с сортирани думи. Всеки ред е номериран, така че трябва да е лесно да следвате примерите и да видите какъв ефект имат различните опции.

tail word-list.txt

За да видите различен брой редове, използвайте опцията -n (брой редове):

tail -n 15 word-list.txt

Всъщност можете да се откажете от „-n“ и просто да използвате тире „-“ и числото. Уверете се, че няма интервали между тях. технически, това е остаряла командна форма, но все още е в man страница, и все още работи.

tail -12 word-list.txt

Използване на опашка с множество файлове

Можете да работите с опашка с няколко файла наведнъж. Просто предайте имената на файловете в командния ред:

tail -n 4 list-1.txt list-2.txt list-3.txt

За всеки файл се показва малка заглавка, така че да знаете към кой файл принадлежат редовете.

Показване на редове от началото на файл

Модификаторът + (брой от началото) прави крайни линии за показване от началото на файл, започвайки от конкретен номер на ред. Ако вашият файл е много дълъг и изберете ред близо до началото на файла, ще получите много изход, изпратен до прозореца на терминала. Ако случаят е такъв, има смисъл да се пренасочва изходът от опашката към по-малко.

tail +440 list-1.txt

Можеш страница през текста по контролиран начин.

Тъй като в този файл има 20 445 реда, тази команда е еквивалентна на използването на опцията „-6“:

tail +20440 list-1.txt

Използване на байтове с опашка

Можете да кажете на tail да използва отмествания в байтове вместо в редове, като използвате опцията -c (байтове). Това може да бъде полезно, ако имате текстов файл, форматиран в записи с обикновен размер. Имайте предвид, че символът за нов ред се брои като един байт. Тази команда ще покаже последните 93 байта във файла:

tail -c 93 list-2.txt

Можете да комбинирате опцията -c (байтове) с модификатора + (брой от началото на файла) и да зададете отместване в байтове, броени от началото на файла:

tail -c +351053 list-e.txt

Тръбопроводи в опашката

По-рано насочвахме изхода от опашката към по-малко. Можем също така да преведем изхода от други команди в опашката.

  Как да зададете статичен IP адрес на Linux в Network Manager

За да идентифицирате петте файла или папки с най-старите времена на модификация, използвайте опцията -t (сортиране по време на модификация) с ls и изведете изхода в опашката.

ls -tl | tail -5

Команда на главата изброява редове с текст от началото на файл. Можем да комбинираме това с опашка, за да извлечем част от файла. Тук използваме командата head, за да извлечем първите 200 реда от файл. Това се прехвърля в опашката, която извлича последните десет реда. Това ни дава редове от 191 до ред 200. Тоест последните десет реда от първите 200 реда:

head -n 200 list-1.txt | tail -10

Тази команда изброява петте най-жадни за памет процеса.

ps aux | sort -nk +4 | tail -5

Нека разбием това.

Командата ps показва информация за работещите процеси. Използваните опции са:

a: Избройте всички процеси, не само за текущия потребител.
u: Показва ориентиран към потребителя изход.
x: Избройте всички процеси, включително тези, които не се изпълняват в TTY.

Командата за сортиране сортира изхода от пс. Опциите, които използваме със сортиране са:

n: Сортиране по цифри.
k +4: Сортиране в четвъртата колона.

Командата tail -5 показва последните пет процеса от сортирания изход. Това са петте най-гладни за памет процеса.

Използване на tail за проследяване на файлове в реално време

Проследяването на нови текстови записи, пристигащи във файл – обикновено лог файл – е лесно с опашка. Предайте името на файла в командния ред и използвайте опцията -f (следване).

tail -f geek-1.log

Тъй като всеки нов запис в дневника се добавя към лог файла, tail актуализира своя дисплей в прозореца на терминала.

  Как да играете класическите Fallout игри на Linux

Можете да прецизирате изхода, за да включите само редове с особена уместност или интерес. Тук използваме grep за показват само редове, които включват думата „средно“:

tail -f geek-1.log | grep average

За да проследите промените в два или повече файла, предайте имената на файловете в командния ред:

tail -f -n 5 geek-1.log geek-2.log

Всеки запис е маркиран със заглавка, която показва от кой файл идва текстът.

Дисплеят се актуализира всеки път, когато пристигне нов запис в следван файл. За да посочите периода на актуализиране, използвайте опцията -s (период на заспиване). Това казва на tail да изчака няколко секунди, пет в този пример, между проверките на файла.

tail -f -s 5 geek-1.log

Разбира се, не можете да разберете, като погледнете екранна снимка, но актуализациите на файла се случват веднъж на всеки две секунди. Новите записи на файлове се показват в прозореца на терминала веднъж на всеки пет секунди.

Когато следвате текстовите допълнения към повече от един файл, можете да потиснете заглавките, които показват от кой регистрационен файл идва текстът. Използвайте опцията -q (тих), за да направите това:

tail -f -q geek-1.log geek-2.log

Резултатът от файловете се показва в безпроблемна смесица от текст. Няма индикация от кой регистрационен файл идва всеки запис.

опашката все още има стойност

Въпреки че достъпът до системните регистрационни файлове вече се предоставя от journalctl, tail все още има какво да предложи. Това е особено вярно, когато се използва във връзка с други команди, като се въвежда или излиза от опашката.

systemd може да е променил пейзажа, но все още има място за традиционните помощни програми, които отговарят на философията на Unix да правят едно нещо и да го правят добре.