Вывести последние строки файла линукс

Команда tail Linux

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

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

Команда tail в Linux

Перед тем как мы будем рассматривать примеры tail linux, давайте разберем ее синтаксис и опции. А синтаксис очень прост:

$ tail опции файл

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

  • -c — выводить указанное количество байт с конца файла;
  • -f — обновлять информацию по мере появления новых строк в файле;
  • -n — выводить указанное количество строк из конца файла;
  • —pid — используется с опцией -f, позволяет завершить работу утилиты, когда завершится указанный процесс;
  • -q — не выводить имена файлов;
  • —retry — повторять попытки открыть файл, если он недоступен;
  • -v — выводить подробную информацию о файле;

В качестве значения параметра -c можно использовать число с приставкой b, kB, K, MB, M, GB, G T, P, E, Z, Y. Еще есть одно замечание по поводу имен файлов. По умолчанию утилита не отслеживает изменение имен, но вы можете указать что нужно отслеживать файл по дескриптору, подробнее в примерах.

Использование tail

Теперь, когда вы знаете основные опции, рассмотрим приемы работы с утилитой. Самый простой пример — выводим последние десять строк файла:

Если вам недостаточно 10 строк и нужно намного больше, то вы можете увеличить этот параметр с помощью опции -n:

Когда вы хотите отслеживать появление новых строк в файле, добавьте опцию -f:

Вы можете открыть несколько файлов одновременно, просто перечислив их в параметрах:

tail /var/log/syslog /var/log/Xorg.0.log

С помощью опции -s вы можете задать частоту обновления файла. По умолчанию данные обновляются раз в секунду, но вы можете настроить, например, обновление раз в пять секунд:

При открытии нескольких файлов будет выводиться имя файла перед участком кода. Если вы хотите убрать этот заголовок, добавьте опцию -q:

tail -q var/log/syslog /var/log/Xorg.0.log

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

Для удобства, вы можете выбирать не все строки, а отфильтровать интересующие вас:

tail -f /var/log/syslog | grep err

Особенно, это полезно при анализе логов веб сервера или поиске ошибок в реальном времени. Если файл не открывается, вы можете использовать опцию retry чтобы повторять попытки:

Читайте также:  Alpine linux package manager

tail -f —retry /var/log/syslog | grep err

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

tail —follow=descriptor /var/log/syslog | grep err

Выводы

В этой статье была рассмотрена команда tail linux. С помощью нее очень удобно анализировать логи различных служб, а также искать в них ошибки. Надеюсь, эта информация была полезной для вас.

Обнаружили ошибку в тексте? Сообщите мне об этом. Выделите текст с ошибкой и нажмите Ctrl+Enter.

Источник

Утилита tail в примерах Unix/Linux

Команда tail в операционных системах UNIX или Linux используется для вывода последних N строк из файла на терминал. Команда tail особенно используется с лог-файлами, чтобы вывести последние несколько строк, чтобы знать о ошибках. Синтаксис команды tail таков:

Параметры команды tail таковы:

  • c : Выводит последние N байт указанного файла; Выводит + печатает символы N байт в файле.
  • n : Выводит последние N строк; Выводит + печатает строки из N-го количества строк в файле.
  • f : Вывод строк в режиме реального времени ( выводит когда появляются новые строки в файле).

Утилита tail в примерах Unix/Linux

В своей статье «Утилита tail в примерах Unix/Linux» я хотел бы рассказать о замечательной утилите tail и привести готовые примеры использования.

Создайте следующий файл use_tail.txt в операционной системе Linux или Unix для практикующих примеров со следующим содержанием:

# cat /home/captain/use_tail.txt This is my unix/linux blog I will write some examples I will use tail with this file Ok. Let's start it!

Вывод последних 10 строк.

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

# tail /home/captain/use_tail.txt This is my unix/linux blog I will write some examples I will use tail with this file Ok. Let's start it!

Вывести последние N строк.

Используйте опцию «-n», чтобы напечатать последние N строк из файла. Следующий пример печатает последние 3 строки из файла:

# tail -n3 /home/captain/use_tail.txt I will use tail with this file Ok. Let's start it!

Вывести строки из N-й строки.

Вы можете печатать строки, начиная с N-й строки в файле. Следующий пример печатает строки начиная с 4-й линии:

# tail -n+4 /home/captain/use_tail.txt Ok. Let's start it!

Вывести последние n байт.

Использовать опцию «-c» для вывода последних N байт из файла. Следующий пример печатает последние 7 байт из файла:

# tail -c7 /home/captain/use_tail.txt rt it!

5. Print characters from the Nth byte

Используйте следующий символ «+» с опцией «-c» чтобы печатать символы с N-го байта. Следующий пример печатает символы с 69-го байта.

# tail -c+69 /home/captain/use_tail.txt l with this file Ok. Let's start it!

Выводить последние строки из файла динамически (в режиме реального времени).

Опция «-f» выводит строки из файла, который динамично растет. При запуске команды «tail -f» с именем файла, он будет печатает последние 10 строк и ожидать новых линий, которые будут добавлены в файл. Всякий раз, когда новые линии добавляется в файл, команда tail также добавляет новые строки на стандартный вывод (на терминал). Опция «-f» полезна при отладке приложений.. Вы можете использовать опцию «-f», чтобы начать анализировать вывод разных ошибок в режиме реального времени:

# tail -f /var/log/nginx/error-linux-notes.log

На этом, у меня все, тема «Утилита tail в примерах Unix/Linux» завершена.

Читайте также:  Cluster for linux servers

Источник

Команда tail

Печатает последние 10 строк файла или последние 10 строк вывода другой команды. Количество печатаемых строк можно изменить. Поддерживает отслеживание изменения содержимого файла.

Синтаксис

ФАЙЛ — это один или несколько файлов, записанных через через пробел, строки которых необходимо вывести.

Если указывается несколько файлов, то выводится последние N строк из каждого файла. Перед началом вывода строк каждого файла выводится имя файла.

Опции

Задает количество строк, которое необходимо вывести.
LINES — количество первых строк из файла, которое нужно вывести.
Если перед LINES указан знак + , то выводится все содержимое файла, кроме первых N-1 строк (где N= LINES ), то есть начиная со строки с номером N.

Задает количество байт, которое необходимо вывести.
BYTES — количество последних байт из файла, которое нужно вывести.
Если перед значением BYTES указан знак + , то выводится все содержимое файла, кроме первых N-1 байт (где N= BYTES ), то есть начиная с байта с номером N.

Значение BYTES можно указать с суффиксом: b (512 байт), kB (1000 байт), MB (1000*1000), M (1024*1024), GB (1000*1000*1000), G (1024*1024*1024), T, P, E, Z, Y.
Также можно использовать двоичные приставки: KiB=K, MiB=M и так далее.

Отслеживать появление новых строк в файле. Выводить последние строки файла по мере их появления.
По умолчанию tails следит за дескриптором файла (—follow=descriptor), то есть, например, если во время отслеживания файл будет переименован, то это не повлияет на выполнение команды.

Пытаться открыть файл, если он недоступен. Опция используется только при отслеживании файла, то есть совместно с опцией -f или —follow=
Опцию удобно использовать при отслеживании файлов логов, которые могут ротироваться, то есть отслеживаемый файл периодически может быть недоступен.

То же самое, что и —follow=name —retry. Отслеживать файл по имени; пытаться открыть, если недоступен.

Используется совместно с опцией —follow=name. Повторно открывает файл, размер которого не изменился после N проверок (по умолчанию 5), чтобы проверить был ли файл переименован (например, это ротируемый файл логов) или выполнен unlink.

Прекратить отслеживание, если процесс с идентификатором PID умирает. Используется совместно с опцией -f.

Делать паузу примерно N секунд (по умолчанию 1) между проверками файла. Используется совместно с опцией -f. При inotify и —pid=PID выполнять проверку процесса PID минимум один раз в N секунд.

Не печатать имена файлов.
Примечание: Имена файлов печатаются, если указано несколько файлов. Если данная опция установлена, то имена файлов не печатаются, и между содержимым разных файлов не добавляется пустая строка.

Примеры использования команды tail

Рассмотрим несколько примеров использования команды tail в Linux.

Вывод последних строк файла на экран

Вывести последние 10 строк файла:

Вывести последние 25 строк файла:

Вывод нескольких последних байт файла

Вывести содержимое последних 100 байт файла:

Вывести содержимое последнего мегабайта файла (здесь используется суффикс M):

Вывод последних строк из нескольких файлов

Вывести последние 3 строки из каждого файла:

tail -n3 myfile.txt myfile2.txt

Использование tail для печати последних строк вывода другой команды

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

Читайте также:  Minecraft open source launcher linux

Выполнить команду ls -t и вывести только последние 5 строк. Команда ls -t выводит на экран список файлов в директории и сортирует их по времени изменения (так как указан ключ -t). В данном примере будут выведены не все файлы, а только последние 5.

Вывести содержимое файла командой cat, но напечатать только последние 12 строк:

cat /var/log/Xorg.0.log | tail -n12

Отслеживание изменений в файлах логов

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

Отслеживать появление новых строк в файле /var/log/messages и выводить последние 20 строк файла:

tail -n20 -F /var/log/messages

Предыдущая команда имеет особенность, заключающуюся в том, что, например, если во время отслеживания файл будет очищен или заменен другим файлом, то после этого команда tail напечатает все содержимое файла. Если такое поведение неприемлемо, то можно воспользоваться командой watch совместно с tail. Выводить последние 20 строк файла раз в 2 секунды:

watch -n2 tail -n20 myfile.txt

Источник

Просмотр содержимого файлов в командной строке Linux

Просмотр содержимого файлов в командной строке Linux

Рассмотрим несколько команд, которые используются для просмотра содержимого текстовых файлов в командной строке Linux.

Команда cat

Команда cat выводит содержимое файла, который передается ей в качестве аргумента.

Это самый простой и наиболее часто используемый способ для вывода содержимого текстовых файлов. Но выводить большие файлы через cat не всегда удобно.

Команда cat

Команда nl

Команда nl действует аналогично команде cat , но выводит еще и номера строк в столбце слева.

Команду nl удобно применять для просмотра программного кода или поиска строк в файлах конфигурации.

Команда nl

Команда less

Утилита less выводит содержимое файла, но отображает его только в рамках текущего окна в режиме просмотра.

Команда less

Вы можете прокручивать текст файла клавишами стрелок или перелистывать страницы клавишами w и z .

Для поиска текста внутри файла нажмите / .

Для просмотра списка доступных горячих клавиш нажмите h

Чтобы выйти из режима просмотра используется клавиша q .

Очень удобно, что после выхода окно терминала остается чистым и не содержит текст файла.

Команда more

Команда more очень похожа на команду less . Она также выводит файл в терминале в режиме просмотра, но имеет некоторые отличия от команды less.

Например, less в конце файла выводит сообщение (END) (или EOF — End Of File) и ожидает нажатия клавиши q чтобы закрыть режим просмотра, а more по достижении конца файла сразу возвращает управление в терминал.

Также more после своей работы оставляет текст файла в терминале, а less работает «чисто» и не сохраняет текст в терминале.

Команда head

Команда head выводит на экран только первые 10 строк файла.

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

Вместо -n можно просто использовать знак минус — , за которым сразу указывается количество строк.

Команда head

Команда tail

Команда tail аналогична команде head , но выводит последние 10 строк файла.

Заключение

Команды, которые мы рассмотрели, имеют дополнительные возможности и области применения. Для получения справки по каждой команде можно воспользоваться Man-страницами.

man cat man nl man less man more man head man tail

Источник

Оцените статью
Adblock
detector