Просмотр текста командами more и less

Для удобного просмотра текста из файла или со стандартного вывода программы используются программы постраничного пролистывания – "пэйджеры".

more

Простейшая программа для постраничного просмотра текста more используется с именем файла(ов) в качестве параметра или как последняя команда в цепочке перенаправлений ввода/вывода. С помощью опций +<число> или +/<образец текста> можно начать просмотр с интересующей строки.

# Просмотр файла file1 с 20-ой строки
more +20 file1

# Поиск в выводе программы grep подстроки 13:00 и просмотр вывода, начиная с этого места
grep ntpd /var/log/messages | more +/13:00

more умеет листать текст вперёд. Текст из файла, в принципе, можно пролистать назад, но это нетипичное использование more.

Основные интерактивные команды more похожи на команды редактора vi:

  • h – help
  • q – выход
  • SPACE – пролистать один экран
  • d – пролистать пол экрана
  • RETURN – пролистать одну строку
  • /pattern – пролистать до строки содержащей подстроку pattern
  • n – повторить поиск подстроки
  • = – показать номер текущей строки
  • :n – перейти к следующему файлу
  • :p – вернуться к предыдущему файлу
  • :f – напечатать имя текущего файла и номер строки в нем
  • ! – запуск shell-команды

Только при просмотре файлов:

  • b – пролистать экран назад
  • v – вызвать текстовый редактор, установив курсор на текущую строку

less

less – существенно более развитая команда для пролистывания текста. При чтении данных со стандартного ввода она создает буфер, который позволяет листать текст как вперед, так и назад, а также искать как по направлению к концу, так и по направлению к началу текста. Заполнение буфера идет блоками по 64KB, поэтому (если текст на стандартный ввод подается медленно) возможна ситуация "подвисания", когда less показывает очередные поступившие строки, но не позволяет выполнить какую-либо команду.

less понимает все команды more плюс свои.

  • h – вызов справки
  • q – выход
  • SPACE – на экран вперёд
  • b – пролистать экран назад
  • k и j или стрелки вверх и вниз – вертикальная прокрутка по строке
  • g – перейти на 1-ую строку
  • <N>g – перейти на строку N
  • G – перейти на последнюю строку
  • F – перейти на последнюю строку файла и ожидать записи новых строк (аналог tail -f, не работает со стандартным вводом)
  • /pattern – поиск по шаблону вперёд
  • ?pattern – поиск по шаблону назад
  • n – следующее совпадение
  • N – предыдущее совпадение
  • mбуква – отметить позицию буквой
  • 'буква (апостоф и буква) – перейти на отмеченную позицию
  • ! – запуск shell-команды (% – имя текущего файла, к примеру: ! cat % > /tmp/foobar.txt)

Только для файла

  • v – запуск редактора

Только для стандартного ввода

  • s filename – сохранить выводимый текст в файл filename

Параметры вывода текста less можно указывать как в виде опций, так и в интерактивном режиме. Повторный ввод опции в интерактивном режиме отменяет действие.

  • -g – при поиске подсвечивать только текущее найденное слово (по умолчанию подсвечиваются все вхождения)
  • -N – показывать номера строк