Как просмотреть конец файла в Linux с помощью команды ‘Tail’

В Linux есть две очень полезных команды, которые позволяют просматривать часть файла. Первый называется head и по умолчанию показывает первые 10 строк файла. Вторая — это хвостовая команда, которая по умолчанию позволяет просматривать последние 10 строк файла.

Зачем вам нужна любая из этих команд? Почему бы просто не использовать команду cat для просмотра всего файла или использовать такой редактор, как nano?

Представьте, что в файле, который вы читаете, 300,000 XNUMX строк. Представьте также, что файл занимает много места на диске.

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

Команда tail полезна для просмотра последних нескольких строк файлов и очень хороша, когда вы хотите увидеть, что происходит в файле журнала, хранящемся в папке / var / log.

Пример использования

Команда tail по умолчанию показывает последние 10 строк файла.

Синтаксис хвостовой команды следующий:

хвост

Например, чтобы просмотреть журнал загрузки вашей системы, вы можете использовать следующую команду:

sudo tail

Результат будет примерно таким:

Как указать количество строк для отображения

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

sudo tail -n20

В приведенном выше примере будут показаны последние 20 строк файла.

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

sudo tail -n + 20

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

Например:

sudo tail -n + 20 <fi

Приведенная выше команда отправляет последние 20 строк из имени файла и передает их в качестве входных данных команде more.

Вы также можете использовать команду tail, чтобы показать определенное количество байтов вместо строк:

sudo tail -c20

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

sudo tail -c + 20

Как контролировать файл журнала

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

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

sudo tail -F -s20

Вы также можете использовать tail для продолжения мониторинга журнала до тех пор, пока процесс не завершится следующим образом:

sudo tail -F —pid = 1234

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

ps -ef | grep & l

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

p

Вывод команды даст вам идентификатор процесса. Представьте, что идентификатор процесса — 1234. Теперь вы можете запустить tail для файла, редактируемого с помощью nano, с помощью следующей команды:

sudo tail -F —pid = 1234

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

Как повторить команду tail

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

sudo tail —retry -F

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

Вывод

Чтобы узнать больше о команде tail, вы можете использовать следующую команду: