Вопрос или проблема
Я обычно нахожусь внутри GNU Screen или tmux
, и это не дает мне отличной функциональности прокрутки. Есть ли альтернатива tail -f
, которая позволяет мне быстро прокручивать вверх?
Инструмент, который похож на most
, — это less
и more
.
Этот вопрос связан, но далеко не конкретен. Я действительно ищу что-то, что позволит мне прокручивать.
Вы можете использовать less +F
, чтобы начать less в режиме “вперед навсегда”. В этом режиме less
будет работать как tail -f
, игнорируя концы файлов и предоставляя постоянный поток текста.
Когда вы захотите прокрутить, нажмите Ctrl+x¹. Чтобы снова войти в режим “вперед навсегда”, нажмите Shift+f
(т.е., большая ‘F’).
¹ Ctrl+c (или что угодно, что посылает SIGINT
) также работает, но когда less
используется в конвейере, это также имеет побочный эффект убийства всех других команд в конвейере, поэтому Ctrl+x была введена в более поздних версиях less
, чтобы этого избежать.
Вы можете использовать
tail -f <файл> | less
тогда вы получите лучшее из обоих миров!
Вы также можете использовать
watch -n 10 cat <файл>
watch – выполнять программу периодически, показывая вывод на весь экран
СИНТАКСИС
watch [-dhvt] [-n <секунды>] [--differences[=cumulative]] [--help] [--interval=<секунды>] [--no-title] [--version] <команда>
ОПИСАНИЕ
watch
выполняеткоманду
повторно,
демонстрируя ее вывод (первый экран).
Это позволяет вам наблюдать, как вывод программы меняется со временем.
По умолчанию, программа выполняется каждые 2 секунды;
используйте-n
или--interval
, чтобы задать другой интервал.Флаг
-d
или--differences
будет выделять изменения
между последовательными обновлениями.
Опция--cumulative
делает выделение “липким”,
предоставляя постоянно обновляемый просмотр всех позиций, которые когда-либо изменились.
Опция-t
или--no-title
отключает заголовок,
показывающий интервал, команду и текущее время в верхней части дисплея,
а также следующую пустую строку.
Я почти всегда использую less
для такого рода вещей. Я никогда не использовал режим “вперед навсегда”, вместо этого я просто пользовался сокращениями времени работы less
для прокрутки:-
< - Прокрутить к началу потока
> - Прокрутить к концу потока
Обратите внимание, что если буфер читается из файла и в этот файл было добавлено новое содержимое с тех пор, как less
был впервые открыт, то новое содержимое будет видно в следующий раз, когда будет нажата >, даже когда не в режиме “вперед навсегда”.
.
Ответ или решение
Чтобы ответить на вопрос о том, что можно использовать в качестве альтернативы команде tail -f
, которая предоставляет удобную возможность прокрутки, стоит рассмотреть существующие решения, обеспечивающие не только просмотр в реальном времени, но и возможность свободной навигации по результатам вывода.
Теория
Команда tail -f
традиционно используется для мониторинга изменений в реальном времени в текстовых файлах, таких как журналы. Эта команда полезна, когда необходимо отслеживать новые записи, добавляемые в конец файла. Однако когда вам нужно быстро прокрутить вверх и просмотреть более ранние записи, стандартные возможности tail -f
могут оказаться ограниченными.
Для решения этой проблемы можно использовать инструменты, которые предлагают функциональность прокрутки, схожую с текстовыми редакторами. Это особенно актуально в средах, таких как GNU Screen или tmux
, где стандартные возможности прокрутки могут быть менее удобными.
Пример
Одним из часто рекомендуемых решений является использование команды less
в режиме "forward forever". Данная команда обеспечивает аналогичную функциональность с возможностью прокрутки. Основная команда выглядит следующим образом:
less +F <имя_файла>
Объяснение:
less +F
открывает файл в режиме, который напоминаетtail -f
. Это позволяет непрерывно отображать новый контент, добавляемый в конец файла.- Для временной остановки режима вывода и возможности прокрутки вверх нужно нажать
<Ctrl> + X
. Чтобы вернуться в режим непрерывного вывода, следует нажать<Shift> + F
(буква ‘F’ в верхнем регистре).
Этот подход позволяет легко переключаться между режимом мониторинга и свободной прокруткой по содержимому файла.
Применение
Кроме less +F
, существуют и другие методы, которые могут быть применены в зависимости от конкретных нужд:
-
Использование команды
tail -f
совместно сless
:tail -f <имя_файла> | less
Это даст возможность использовать возможности прокрутки
less
вместе с живым обновлением данных отtail
. -
Команда
watch
:watch -n 10 cat <имя_файла>
watch
запускает командуcat
через заданные промежутки времени. Это полезно для наблюдения за использованием ресурса в реальном времени, однако не предоставляет тех же возможностей прокрутки, что иless
. -
Алтернативные инструменты:
- Если вас интересует управление логами в более широком контексте или с дополнительными функциями (например, фильтрация, агрегирование), можно рассмотреть использование таких инструментов, как
multitail
илиlnav
, которые являются специализированными средствами для работы с логами и предоставляют расширенные возможности.
- Если вас интересует управление логами в более широком контексте или с дополнительными функциями (например, фильтрация, агрегирование), можно рассмотреть использование таких инструментов, как
Эти решения позволяют достичь баланса между наблюдением изменений в реальном времени и удобством навигации по данным, что особенно полезно для системных администраторов и разработчиков, работающих с большими объемами логов или других потоков данных. Правильное использование таких инструментов может существенно повысить эффективность аналитических и диагностических процессов в ИТ-системах.