9 Практических примеров использования команды Tail в Linux

Как пользователи Linux, мы часто работаем с длительными фоновыми процессами Linux, которые называются демонами или службами. Некоторые из распространенных примеров таких служб — Secure Shell (sshd), Network Manager (networkd), Volume Manager (LVM), Cron, и список можно продолжать.

Много раз нам необходимо отслеживать журналы этих служб для отладки системных проблем. Однако одна из основных проблем заключается в том, что эти службы генерируют большое количество журналов, и в большинстве случаев просмотр этих журналов становится громоздким, поэтому здесь мы можем использовать команду tail.

Команда tail — это утилита командной строки, аналогичная команде head, которая читает файл и печатает последние 10 строк (содержимое) одного или нескольких файлов на стандартный вывод.

Синтаксис команды tail

Синтаксис команды tail аналогичен другим командам Linux:

$ tail [OPTIONS] [FILE-1] [FILE-2] ...

1. Печать последних 10 строк файла в Linux

По умолчанию команда tail печатает последние 10 строк заданного файла, как показано на рисунке.

$ tail /var/log/secure

Здесь мы видим, что приведенная выше команда показывает последние десять строк из файла /var/log/secure.

2. Печать последних N строк файла в Linux

В последнем примере команда печатает последние 10 строк данного файла. Однако мы можем использовать опцию -n, которая позволяет нам ограничить количество строк, выводимых на экран, как показано на рисунке.

$ tail -n 3 /var/log/secure

В этом примере мы видим, что теперь команда показывает только последние три строки вместо десяти строк.

3. Игнорирование первых N строк файла в Linux

Здесь мы можем использовать символ плюс (+) с опцией -n, которая позволяет нам управлять точкой отсчета от заданного файла.

Чтобы понять это, давайте используем значение +5, чтобы начать вывод с 5-й строки:

$ tail -n +5 /var/log/secure

4. Показать последние N символов файла

Аналогично строкам, мы также можем использовать команду для отображения последних N символов файла с помощью опции -c, как показано ниже:

$ tail -c 7 /var/log/secure

В данном примере мы видим, что команда показывает последние семь ASCII-символов заданного файла.

5. Удаление первых N символов файла

Аналогично, мы можем использовать символ плюс (+) с опцией -c, чтобы пропустить первые N символов. Итак, давайте пропустим первую строку файла с помощью следующей команды:

$ tail -c +5 /var/log/secure

Здесь мы видим, что команда показывает все строки, кроме первой.

6. Показывать имя файла в заголовке

Мы можем указать команде tail отображать имя текущего файла в виде заголовка, что очень удобно при работе с несколькими файлами.

Итак, давайте воспользуемся опцией -v, чтобы включить отображение заголовка:

$ tail -n 3 -v /var/log/secure

В приведенном выше выводе, ==> /var/log/secure <== представляет собой отображаемый заголовок.

7. Показывать имя файла в качестве заголовка в нескольких файлах

Как и любая другая команда обработки файлов, команда tail может использовать несколько файлов. В таких случаях для разделения содержимого файлов используется отображаемый заголовок.

$ tail -n 3 -v /var/log/secure /var/log/secure-20230402

В приведенном выше выводе мы можем видеть отображаемый заголовок для каждого файла.

8. Как отключить отображение заголовка в файле

В предыдущем примере мы видели, что команда включает отображение заголовка при работе с несколькими файлами. Однако мы можем отключить это поведение по умолчанию с помощью опции -q.

$ tail -q -n 3 /var/log/secure /var/log/secure-20230402

Здесь мы видим, что теперь команда отображает содержимое файла одно за другим без какого-либо заголовка.

9. Как следить за изменениями в файле

До сих пор мы видели, что команда tail завершает работу, как только обработает необходимое количество строк или символов. Однако иногда мы хотим просмотреть только что созданные журналы.

В таких случаях мы можем использовать опцию -f, которая позволяет следить за изменениями в файле в режиме реального времени.

Чтобы понять это, сначала выполним приведенную ниже команду в первом терминале:

$ tail -f /var/log/messages

Здесь мы видим, что команда ждет бесконечно долго после отображения последних десяти строк:

Далее, давайте откроем другой терминал и добавим некоторый текст в файл numbers-2.txt:

$ echo "View Logs in Real-Time" >> /var/log/messages

Теперь давайте переключимся на первый терминал, чтобы просмотреть новый добавленный текст:

$ tail -f /var/log/messages

Здесь мы видим, что команда tail показывает только что добавленный текст.

Поделитесь с друзьями

Добавить комментарий

0 комментариев
Вбудовані Відгуки
Переглянути всі коментарі
0
Ми любимо ваші думки, будь ласка, прокоментуйте.x