хвост (Unix)
Разработчик(и) | Различные с открытым исходным кодом и коммерческие разработчики разработчики |
---|---|
Написано в | С |
Операционная система | Unix , Unix-подобный , V , Plan 9 , Inferno , MSX-DOS , FreeDOS |
Платформа | Кросс-платформенный |
Тип | Команда |
Лицензия | План 9: Общественная лицензия Lucent или лицензия GPLv2 или MIT основные утилиты : GPLv3+ |
Tail — это программа, доступная в Unix , Unix-подобных системах, FreeDOS и MSX-DOS, используемая для отображения хвостовой части текстового файла или передаваемых по конвейеру данных.
Реализации
[ редактировать ]Версия tail
пакет GNU coreutils был написан Полом Рубином, Дэвидом Маккензи, Яном Лэнсом Тейлором и Джимом Мейерингом. [1] Команда доступна в виде отдельного пакета для Microsoft Windows как часть UnxUtils коллекции , состоящей из собственных Win32- портов распространенных GNU Unix-подобных утилит. [2] Версия FreeDOS была разработана М. Эйтчисоном. [3] А tail
Команда также является частью ASCII инструментов MSX -DOS2 для MSX-DOS версии 2. [4]
CCZE похож на хвост, отображая выходные данные в цвете. [5]
pctail аналогичен CCZE. Это раскрашенный хвост, запрограммированный на Python , который отслеживает и раскрашивает вывод системного журнала. [6]
Inotail представлял собой реализацию, использующую интерфейс ядра inotify Linux (представленный в версии 2.6.13 в августе 2005 года) для проверки доступности новых данных вместо опроса каждую секунду, как это делал исходный хвост. [7] Однако более новые версии [ который? ] Tail также начал использовать inotifi, когда это было возможно, поэтому Inotail устарел и больше не поддерживается.
MultiTail не только отображает файлы журналов в цветах, но также может объединять, фильтровать, прокручивать назад и разделять окно терминала на подокна. [8] Это более или менее комбинация Tail, sed , Watch , CCZE/pctail, grep , diff , Beeper и других.
Синтаксис
[ редактировать ]команды Синтаксис :
tail [options] <filename>
По умолчанию, Tail выведет последние 10 строк своего ввода на стандартный вывод . С помощью параметров командной строки можно изменить объем вывода и единицы измерения (строки, блоки или байты).
В следующем примере выводится только последняя строка отчетов:
$ tail -n1 report-13*
==> report-1301 <==
Total tons output for month of January '13 was 523
==> report-1302 <==
Total tons output for month of February '13 was 272
==> report-1303 <==
Total tons output for month of March '13 was 623
В этом примере выводятся последние 4 символа отчетов, молча подавляя имена файлов. Обратите внимание, что счетчик включает в себя символ новой строки в конце каждой строки, поэтому выходные данные не включают пробел в начале, как можно было бы ожидать.
$ tail --silent -c4 report*
523
272
623
В этом примере показаны все строки отчета, начиная со второй строки:
tail -n +2 report
Используя старый синтаксис (все еще используемый в более старых версиях Sun Solaris, поскольку опция -n не поддерживается), последние 20 строк и последние 50 байтов имени файла можно отобразить с помощью следующей команды:
tail -20 filename tail -50c filename
Однако этот синтаксис уже устарел и не соответствует стандарту POSIX 1003.1-2001. Даже если они все еще поддерживаются в текущих версиях, при использовании с другими параметрами (например, -f, см. ниже) эти переключатели вообще не могут работать.
Как и в случае со всеми командами Unix, используйте страницы руководства работающей системы для определения конкретных параметров и действий.
Мониторинг файлов
[ редактировать ]Tail имеет две специальные опции командной строки -f
и -F
(следовать), который позволяет отслеживать файл. Вместо того, чтобы просто отображать последние несколько строк и выходить, Tail отображает строки, а затем отслеживает файл. Поскольку новые строки добавляются в файл другим процессом , Tail обновляет дисплей. Это особенно полезно для мониторинга файлов журналов. Древние версии Tail опрашивают файл каждую секунду по умолчанию, но Tail из GNU coreutils, начиная с версии 7.5, поддерживает инфраструктуру inotify, представленную в версии ядра Linux 2.6.13 в августе 2005 года, которая проверяет файл только тогда, когда ядро уведомляет об изменениях.
Следующая команда отобразит последние 10 строк сообщений и добавит новые строки к отображению по мере добавления новых строк к сообщениям :
tail -f /var/adm/messages
Чтобы продолжать следить за журналом, даже когда он воссоздается, переименовывается или удаляется в рамках ротации журналов, по крайней мере, реализации BSD и GNU предоставляют -F
Опция, которая полезна в случаях, когда пользователь следит за вращающимся файлом журнала .
tail -F /var/adm/messages
Чтобы прервать хвост, пока он отслеживает, взломайте его, нажав Ctrl+C. Эту команду можно запустить «в фоновом режиме» с помощью &
, см. контроль заданий .
Если пользователю нужно отслеживать результат выполнения команды, наблюдения можно использовать команду .
Существует режим GNU Emacs , который имитирует функциональность tail -f
, называется автоматический возврат хвостового режима .
См. также
[ редактировать ]Ссылки
[ редактировать ]- ^ «tail(1): вывести последнюю часть файлов — справочная страница Linux» . linux.die.net .
- ^ «Собственные порты Win32 некоторых утилит GNU» . unxutils.sourceforge.net .
- ^ «Пакет ibiblio.org FreeDOS — хвост (Unix-подобный)» . www.ibiblio.org .
- ^ «Руководство пользователя по инструментам MSX-DOS2 - Руководство пользователя по инструментам MSX-DOS2» 1 апреля 1993 г. - через Интернет-архив.
- ^ «ЧКЗЕ» . Freshmeat.sourceforge.net .
- ^ "пктейл" . СоурсФордж . 25 февраля 2013 г.
- ^ "инотейл" . distanz.ch .
- ^ Калси, Таджиндер (2016). Практическая книга по безопасности Linux . Packt Publishing Ltd., стр. 234–236. ISBN 9781785285301 . Проверено 22 сентября 2017 г.
Внешние ссылки
[ редактировать ]- Документация проекта GNU для хвоста
- FreeBSD по основным командам Руководство –
- Plan 9 , том 1 Руководство программиста –