Команда less в Linux

Опубликовано admin - пт, 02/10/2023 - 12:56

Команда less является пейджером терминала Linux, показывая содержимое файла по одному экрану за раз, что очень удобно при работе с большим текстовым файлом.

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

Содержание

Возможности утилиты

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

Интерактивные функции, которыми оснащена команда less позволяют пользователям перемещаться вперед и назад по файлу. Это делает утилиту более продвинутой и универсальной, нежели такие терминальные пейджеры как more и most.

Синтаксис

less [опции] путь_к_файлу

Опции

-E
Автоматическое завершение работы по достижении конца файла
-f
Принудительное открывание нестандартных файлов
-F
Выход less, если весь файл может отображаться на первом экране
-g
Выделение строки, найденной последней с помощью поиска. По умолчанию выделяются все строки, соответствующие последней команде поиска
-G
Удаление всех выделений из строк, найденных с помощью поиска
-i
Игнорирование чувствительности к регистру во время поиска
-J
Отображение столбца состояния в левой части экрана. Столбец состояния показывает строки, соответствующие текущему поиску, и любые строки, отмеченные с помощью опций -m или -M
-m
Инструктирует утилиту подсказывать подробно (аналогично more), показывая процент в файле. По умолчанию запрашивается двоеточие
-M
Указывает утилите выполнять ещё более подробный вывод
-n
Удаляет номера строк с экрана
-N
Отображает номера строк в начале каждой строки
-o  [file_name]
Заставляет команду копировать свой ввод в указанный файл. Этот параметр применяется только в том случае, если входной файл представляет собой канал |, а не обычный файл. Для существующих файлов команда запрашивает подтверждение перед перезаписью файла
-p  [pattern]
Даёт указание команде начать с первого появления указанного шаблона во входном файле
-Q
Обеспечивает бесшумную работу, отключающую звонок терминала
-s
Объединяет последовательные пустые строки в одну пустую строку
-X
Отключает очистку экрана после выхода из less
-z  [n]
Изменяет размер окна прокрутки по умолчанию на указанный

Навигация по текстовому файлу

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

Клавиатурные команды
Ярлыки Действие
Down Arrow, Enter, e, j На одну строку вперед
Up Arrow, y, k На одну строку назад
Space bar, Page Down На одну страницу вперед
Page Up, b На одну страницу назад
Right Arrow Прокрутить вправо
Left Arrow Прокрутить влево
Home, g Перейти к началу файла
End, G Перейти в конец файла
/[string] Поиск указанной строки вперед
?[string] Поиск указанной строки в обратном направлении
n Следующее совпадение во время поиска
N Предыдущее совпадение во время поиска
q Выход

Использование команды less в Linux

Открытие текстового файла без параметров

Запуск команды без параметров выводит содержимое входного файла способом по умолчанию.

Пример:

oleg@mobile:$ less /etc/pacman.d/mirrorlist

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

Вывод номеров строк

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

Пример:

oleg@mobile:$ less -N /etc/pacman.d/mirrorlist

Теперь каждая строка в файле пронумерована.

Поиск строки

Команда less позволяет осуществлять поиск строки в открытом файле.

Запускаем поиск вперед, нажав / и введя необходимое слово или его фрагмент, например, land:

oleg@mobile:$ less /etc/pacman.d/mirrorlist

Нажимаем клавишу Enter:

На экране видно, что фрагмент land в первом же слове, включающем его подсвечен.

По умолчанию при поиске команда less учитывает регистр. Для игнорирования чувствительности к регистру используется опция -I или нажимается клавиша I при отработке команды.

Сейчас мы находимся на первом экране, где фрагмент land подсвечен в слове Finland. Для перехода к следующему результату надо нажать клавишу n, а для перехода к предыдущему — N.

Нажимаем клавишу n:

Результат — Iceland.

Открытие файла с поиском по шаблону

Для этого используется опция -p, позволяющая открыть текстовый файл на странице, содержащей первый элемент, соответствующий указанному шаблону. Повторяем поиск land, но с использованием опции -p:

oleg@mobile:$ less -pland /etc/pacman.d/mirrorlist

Поиск чувствителен к регистру. При указании шаблона убедитесь, что между параметром и шаблоном нет пробелов.

Удаление нескольких пустых строк

Опция -s позволяет сжимать несколько пустых строк из текстового файла в одну пустую строку, что даёт команде less возможность отображать больше содержимого на каждом экране файла.

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

oleg@mobile:~:$ less ~/webprojects/linuxcookbook.ru/articles/komanda-mount-linux-2

Запуск утилиты с параметром -s сожмёт пустые строки в одну:

oleg@mobile:~:$ less -s ~/webprojects/linuxcookbook.ru/articles/komanda-mount-linux-2

Открытие нескольких файлов

Команда less позволяет открывать одновременно несколько файлов без потери текущей позиции в этих файлах. Для этого указываются имена файлов одно за другим:

oleg@mobile:~/webprojects/linuxcookbook.ru/articles:$ less yay-arch-linux ekrannaya-klaviatura-onboard

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

Для перехода к следующему файлу надо ввести :, а затем — n:

Вернуться к предыдущему файлу можно введя : и p:

Метки в тексте

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

Добавим метку, выделив текст и нажав клавишу m, а затем любую букву по выбору. Для добавления большего количества меток используются разные буквы.

Например:

oleg@mobile:~/webprojects/linuxcookbook.ru/articles:$ less yay-arch-linux

Выло выделено PKGBUILD и нажата клавиша p. Теперь в следующий раз можно будет вернуться к фрагменту, содержащему PKGBUILD введя ", а затем — p.

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

После выхода из команды окно терминала очищается, удаляя вывод файла. Для того чтобы оставить содержимое файла в терминале после выхода используется опция -X.

Например:

oleg@mobile:~/webprojects/linuxcookbook.ru/articles:$ less -X yay-arch-linux

Теперь содержимое файла останется на терминале после выхода из less.

Просмотр конвейерного ввода

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

Например, команда dmesg отображает сообщения, связанные с ядром, а файл её журнала может быть довольно большим и перегружать терминал. Для упрощения навигации по файлу и лучшей читабельности можно направить вывод dmesg в less. При указании параметра +F процесс будет автоматизирован и команда всегда будет показывать новые данные по мере их поступления:

oleg@mobile:~:$ sudo dmesg | less +F

Заключение

Теперь вы знаете, как использовать команду less в Linux. Несмотря на существование и иных терминальных пейджеров, таких как most и more,  ээта утилита может быть лучшим выбором, так как этот мощный инструмент присутствует почти в каждой системе.

Поделиться с друзьями