Команда 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
, ээта утилита может быть лучшим выбором, так как этот мощный инструмент присутствует почти в каждой системе.