Tail — это программа , доступная в Unix , Unix-подобных системах, FreeDOS и MSX-DOS, используемая для отображения хвостовой части текстового файла или передаваемых по конвейеру данных.
Версия, tail
включенная в GNU coreutils , была написана Полом Рубином, Дэвидом Маккензи, Яном Лэнсом Тейлором и Джимом Мейерингом. [1] Команда доступна в виде отдельного пакета для Microsoft Windows как часть коллекции UnxUtils , состоящей из собственных Win32- портов распространенных GNU Unix-подобных утилит. [2] Версия FreeDOS была разработана М. Эйтчисоном. [3] Команда tail
также является частью инструментов MSX -DOS2 ASCII для MSX-DOS версии 2. [4]
CCZE похож на хвост, отображая выходные данные в цвете. [5]
pctail аналогичен CCZE. Это раскрашенный хвост, запрограммированный на Python , который отслеживает и раскрашивает вывод системного журнала. [6]
Inotail представлял собой реализацию, использующую интерфейс ядра inotify Linux (представленный в версии 2.6.13 в августе 2005 года) для проверки доступности новых данных вместо опроса каждую секунду, как это делал исходный хвост. [7] Однако более новые версии [ какие? ] хвоста также начал использовать inotifiy, когда это было возможно, поэтому Inotail устарел и больше не поддерживается.
MultiTail не только отображает файлы журналов в цветах, но также может объединять, фильтровать, прокручивать назад и разбивать окно терминала на подокна. [8] Это более или менее комбинация Tail, sed , Watch , CCZE/pctail, grep , diff , Beeper и других.
Синтаксис команды :
хвост [опции] <имя файла>
По умолчанию Tail выводит последние 10 строк своего ввода на стандартный вывод . С помощью параметров командной строки можно изменить объем вывода и единицы измерения (строки, блоки или байты).
В следующем примере выводится только последняя строка отчетов:
$ Tail -n1 report-13* ==> report-1301 <== Общий объем производства за январь '13 составил 523==> report-1302 <== Общий объем производства за февраль '13 составил 272 тонны.==> report-1303 <== Общий объем производства за март '13 составил 623 тонны.
В этом примере выводятся последние 4 символа отчетов, молча подавляя имена файлов. Обратите внимание, что счетчик включает в себя символ новой строки в конце каждой строки, поэтому выходные данные не включают в себя начальный пробел, как можно было бы ожидать.
$ Tail --silent -c4 отчет* 523 272 623
В этом примере показаны все строки отчета, начиная со второй строки:
хвост -n +2 отчет
Используя старый синтаксис (все еще используемый в более старых версиях Sun Solaris, поскольку опция -n не поддерживается), последние 20 строк и последние 50 байтов имени файла можно отобразить с помощью следующей команды:
хвост -20 имя файла хвост -50c имя файла
Однако этот синтаксис уже устарел и не соответствует стандарту POSIX 1003.1-2001. Даже если они все еще поддерживаются в текущих версиях, при использовании с другими параметрами (например, -f, см. ниже) эти переключатели вообще не могут работать.
Как и в случае со всеми командами Unix, используйте страницы руководства работающей системы для определения конкретных параметров и действий.
Tail имеет две специальные опции командной строки -f
и -F
(follow), которые позволяют отслеживать файл. Вместо того, чтобы просто отображать последние несколько строк и выходить, Tail отображает строки, а затем отслеживает файл. Когда новые строки добавляются в файл другим процессом , Tail обновляет отображение. Это особенно полезно для мониторинга файлов журналов. Древние версии Tail опрашивают файл каждую секунду по умолчанию, но Tail из GNU coreutils, начиная с версии 7.5, поддерживает инфраструктуру inotify , представленную в ядре Linux версии 2.6.13 в августе 2005 года, которая проверяет файл только тогда, когда ядро уведомляет об изменениях.
Следующая команда отобразит последние 10 строк сообщений и добавит новые строки к отображению по мере добавления новых строк к сообщениям :
хвост -f /var/adm/messages
Чтобы продолжать следить за журналом, даже когда он воссоздается, переименовывается или удаляется в рамках ротации журналов, по крайней мере, реализации BSD и GNU предоставляют опцию, -F
которая полезна в тех случаях, когда пользователь следит за файлом журнала, который вращается .
хвост -F /var/adm/messages
Чтобы прервать хвост во время мониторинга, нажмите Ctrl+C. Эту команду можно запустить «в фоновом режиме» с помощью , см. «Управление заданиями» .&
Если пользователю нужно отслеживать результат выполнения команды, можно использовать команду наблюдения .
Существует режим GNU Emacs , который имитирует функциональность tail -f
, называемый auto-revert-tail-mode .