Ответ 1
Попробуйте команду tail:
tail -f filename
Я создаю приложение, которое записывает в файл журнала, и мне нужно знать, как в Linux/ Bash непрерывно отображать файл журнала на экране (обновление экрана с каждой новой строкой, помещенной в журнал).
В качестве примера, скажем, я хочу постоянно обновлять текущий журнал apache/error.log
на экране (терминал ssh).
Попробуйте команду tail:
tail -f filename
Другим решением является
less +F filename
или просто less filename
и набрав в нем "F" (нажав shift + f). Он может быть лучше, чем tail
, поскольку он позволяет временно отменить непрерывную печать, вернуться назад, чтобы что-то посмотреть, и снова включить его с помощью "F" (shift + f) снова
Команда watch также может быть полезной.
watch tail logfile
Покажет вам последние 5 строк файла журнала. Он может быть расширен до любой команды, которая печатает материал в стандартный вывод.
Да, использование tail -f
является традиционным решением, но в зависимости от того, что вы пытаетесь сделать, это может работать лучше.
ssh {remotehost} tail -n0f {logfile}
Это даст вам нулевые строки изначально и будет непрерывно печатать любые новые строки, которые появляются в файле.
Вы также можете:
less filename.txt
and press 'F'
имеет один плюс - вы можете в любое время CTRL-C и прокручивать назад в журнале и снова смотреть с помощью "F".