less
Интерактивный постраничный просмотр файлов с поиском и навигацией
Описание
less — интерактивная программа для постраничного просмотра текстовых файлов в терминале. Название — игра слов: «less is more» («меньше значит больше»), намекающая на то, что less является улучшенной версией более ранней утилиты more. Написана Марком Нудельманом (Mark Nudelman) в 1983 году и с тех пор стала стандартом де-факто для просмотра файлов в Unix-системах.
Главное преимущество less перед cat — возможность свободной навигации: вперёд и назад по файлу, поиск по регулярным выражениям, переход к определённой строке. При этом less не загружает весь файл в память — он читает его порциями, поэтому одинаково хорошо работает как с небольшими конфигами, так и с гигабайтными лог-файлами.
less широко используется как пейджер по умолчанию во многих системных командах: man, git log, git diff, systemctl status и других. Умение эффективно работать с less значительно ускоряет работу в терминале.
Синтаксис
Компоненты команды:
- less — имя команды
- [ОПЦИИ] — необязательные флаги запуска
- [ФАЙЛ]... — один или несколько файлов; если файл не указан — читает из
stdin(вывод конвейера)
Основные горячие клавиши внутри less
Флаги и опции
| Флаг | Описание | Пример |
|---|---|---|
-N |
Показывать номера строк слева. Удобно при просмотре кода или конфигов. | less -N script.py |
-i |
Регистронезависимый поиск: паттерн в нижнем регистре будет искать строки без учёта регистра. | less -i log.txt |
-I |
Полностью нечувствительный к регистру поиск (работает даже если паттерн содержит заглавные буквы). | less -I file.txt |
-S |
Не переносить длинные строки — горизонтальная прокрутка вместо переноса. Удобно для широких CSV или логов. | less -S data.csv |
-F |
Если файл умещается на один экран — вывести его и сразу выйти (как cat), иначе открыть интерактивный просмотр. |
less -F short.txt |
-X |
Не очищать экран при выходе — содержимое файла остаётся в терминале. Полезно при просмотре коротких выводов. | less -X file.txt |
-R |
Интерпретировать ANSI escape-коды (цвета). Обязателен при просмотре цветного вывода команд через конвейер. | git diff | less -R |
-p pattern |
Открыть файл и сразу перейти к первому вхождению указанного шаблона. | less -p ERROR app.log |
-n |
Отключить нумерацию строк (ускоряет работу с очень большими файлами). | less -n huge.log |
+F |
Запустить в режиме слежения (аналог tail -f) — файл будет обновляться при изменениях. Выход из режима: Ctrl+C. |
less +F /var/log/syslog |
-e |
Автоматически выйти при достижении конца файла (при второй попытке листать вниз). | less -e file.txt |
-G |
Отключить подсветку найденных строк при поиске. | less -G file.txt |
Паттерны использования
Просмотр лог-файлов
Стандартный сценарий: открыть большой лог и найти ошибки:
# Открыть системный лог less /var/log/syslog # Внутри less нажмите / и введите: /ERROR # Переход между совпадениями: n / N # Или сразу открыть с поиском less +/ERROR /var/log/syslog
Просмотр вывода git
less как пейджер для git-команд с сохранением цветов:
# git использует less автоматически git log --oneline --graph git diff HEAD~1 # Принудительно с цветами git log --color=always | less -R # Поиск коммита по сообщению git log | less # внутри: /fix bug
Режим слежения за файлом
Следить за обновлениями лога в реальном времени (аналог tail -f):
# Открыть и следить за обновлениями less +F /var/log/nginx/access.log # Преимущество перед tail -f: # можно нажать Ctrl+C и вернуться # к обычной навигации по файлу, # затем снова нажать F — продолжить следить
Просмотр нескольких файлов
Открыть несколько файлов и переключаться между ними:
# Открыть несколько файлов less config.yml schema.sql README.md # Внутри less: # :n — следующий файл # :p — предыдущий файл # :e filename — открыть другой файл # Внизу экрана: имя текущего файла
Просмотр man-страниц
man использует less как пейджер — все клавиши работают:
# Открыть документацию команды man grep man bash # Клавиши те же, что в less: # /pattern — поиск по man-странице # n — следующее совпадение # q — выйти из man
Горизонтальная прокрутка широких файлов
Для широких CSV, TSV или длинных строк кода:
# Отключить перенос строк less -S wide_data.csv # Горизонтальная прокрутка: # ← → или стрелки влево/вправо # Shift+→ — прокрутить на половину экрана # Комбинация флагов для удобства less -SN access.log
Советы и предупреждения
Добавьте в
~/.bashrc строку export LESS="-RiSF", чтобы less всегда запускался с вашими любимыми флагами: цветовые коды, нечувствительный поиск, без переноса строк, автовыход для коротких файлов.
В отличие от
tail -f, в режиме less +F вы можете нажать Ctrl+C, проверить предыдущие записи лога, а затем нажать F снова, чтобы вернуться в режим слежения. Это делает less более гибким инструментом для мониторинга логов.
Внутри
less нажмите m и затем любую букву, чтобы поставить метку в текущей позиции. Для возврата к метке нажмите ' (апостроф) и ту же букву. Удобно при работе с большими файлами.
Не открывайте бинарные файлы в
less без флага -f (force). less предупредит вас, если файл выглядит как бинарный. Для просмотра бинарных данных используйте xxd или hexdump.