Команда less в Linux
Об утилите и команде more, которая предназначена для постраничного просмотра больших текстовых файлов, мы уже писали. А сегодня расскажем о более функциональной команде less — она позволяет перематывать текст не только вперёд, но и назад, осуществлять поиск в обоих направлениях, переходить сразу в конец или в начало файла.
Особенность less заключается в том, что команда не считывает текст полностью, а загружает его небольшими фрагментами.
Синтаксис и опции less
Запись команды less в терминале выглядит так:
команда опции файл
Наиболее популярные опции:
- -a, —search-skip-screen — не осуществлять поиск в тексте, который в данный момент отображен на экране;
- -bn, —buffers=n — задать размер буфера памяти;
- -c, —clear-screen — листать текст, полностью стирая содержимое экрана (построчная прокрутка работать не будет);
- -Dxcolor, —color=xcolor — задать цвет отображаемого текста;
- -E, —QUIT-AT-EOF — выйти, когда утилита достигнет конца файла;
- -e, —quit-at-eof — выйти, когда утилита второй раз достигнет конца файла;
- -F, —quit-if-one-screen — выйти, если содержимое файла помещается на одном экране;
- -f, —force — открыть специальный файл;
- -hn, —max-back-scroll=n — задать максимальное количество строк для прокрутки назад;
- -yn, —max-forw-scroll=n — задать максимальное количество строк для прокрутки вперёд;
- -i, —ignore-case — игнорировать регистр;
- -I, —IGNORE-CASE — игнорировать регистр, даже если паттерн для поиска содержит заглавные буквы;
- -jn, —jump-target=n — указать, в какой строке должна быть выведена искомая информация;
- -J, —status-column — пометить строки, соответствующие результатам поиска;
- -n, —line-numbers — не выводить номера строк;
- —N, —LINE-NUMBERS — вывести номера строк;
- -s, —squeeze-blank-lines — заменить множество идущих подряд пустых строк одной пустой строкой;
- -w, —hilite-unread — выделить первую строку нового фрагмента текста.
Во время просмотра текста утилитой можно управлять при помощи внутренних команд, набирая их на клавиатуре компьютера. Наиболее часто используемые из них:
- h, H — справка;
- Space, Ctrl+V, f, Ctrl+F — прокрутить текст на один экран вперёд;
- Enter, Return, Ctrl+N, e, Ctrl+E, j, Ctrl+J — прокрутить текст на n строк вперед, по умолчанию n=1;
- y, Ctrl+Y, Ctrl+P, k, Ctrl+K — прокрутить текст на n строк назад, по умолчанию n=1;
- Ctrl+→ — прокрутить текст по горизонтали в конец строки;
- Ctrl+← — прокрутить текст по горизонтали в начало строки;
- :d — удалить текущий файл из списка файлов;
- Ctrl+G, :f — вывести основную информацию о файле;
- q, Q, :q, :Q, ZZ — выход.
Перечень всех опций и внутренних команд можно просмотреть в терминале, выполнив команду
Примеры использования less
Использование опций не является обязательным. Открыть файл можно, выполнив следующую команду:
Командная строка исчезнет, а в окне терминала откроется указанный вами документ. После этого его можно читать, пользуясь для прокручивания строк вперед и назад клавишами Enter и y либо другими.
Внизу окна вы увидите поле с мигающим курсором — здесь можно напечатать какую-либо внутреннюю команду, например, задать утилите паттерн поиска.
Опции нужны для того, чтобы оптимизировать отображение текста и сделать работу с утилитой более удобной. К примеру, в текстах часто встречаются множественные пустые строки. Они «съедают» место на экране, не принося никакой пользы. Поэтому к команде less стоит всегда добавлять опцию -s или —squeeze-blank-lines — она удаляет лишние пустые строки.
less -s textfile.txt
Сравните как выглядит один и тот же текст с использованием опции -s (слева) и без неё (справа).
Впрочем, утилиту less зачастую используют не для чтения текста, а для поиска определенных участков в больших документах. Если вам нужно найти то или иное слово, напечатайте в поле с мигающим курсором /текст (для поиска вниз по тексту) или ?текст (чтобы выполнить поиск less вверх по тексту) и нажмите Enter. При необходимости используйте стандартные паттерны. Все участки текста, которые соответствуют заданным условиям поиска, будут подсвечены контрастным цветом.
Если вас интересует как выйти из less, то для выхода из утилиты и возвращения к командной строке терминала нажмите q, ZZ или выполните другую команду, сигнализирующую о завершении работы.
Следует заметить, что утилита less предназначена только для просмотра документов. Она не позволяет вносить в текст правки, форматировать или пересохранять его.
Выводы
Команда less в Linux пригодится для просмотра по-настоящему больших текстовых файлов, с которыми затруднительно работать в текстовых редакторах вроде vim или с помощью утилит, загружающих весь документ сразу. Если какие-то нюансы управления утилитой less остались вам непонятны, оставьте свой вопрос в комментариях и более опытные пользователи помогут решить проблему.
Просмотр логов в Linux – tail и less
Если вы взялись за администрирование Linux, будьте готовы к тому, что просмотр и анализ лог-файлов будет отнимать львиную долю времени того времени, что вы проводите в консоли. Анализ лога основной (а чаще всего и единственный) способ разобраться в поведении сервера.
Зачастую, лог содержит тысячи строк, так мало того, может каждую секунду увеличиваться на еще несколько записей. А смотреть желательно в живую, отслеживая реакцию на те или иные действия. Тут нам помогут две утилиты tail и less .
Просмотр логов в Linux с помощью tail .
tail (переводится как хвост) позволяет просмотреть 10 последних строк файла. Если нужно больше, достаточно об этом сказать. Например, 25:
] # tail -n 25 /var/log/httpd/error_log
] # tail -25 /var/log/httpd/error_log
Второй полезный параметр, который можно передать -f . C этим параметром tail выводит заданное количество последних строк и продолжает считывать добавляемые строки, до тех пор пока вы не нажмете Сtrl+C – т.е. вы можете в живую отслеживать изменения в лог-файле:
] # tail -5f /home/sites/web/site.ru/logs/site.ru.log
Но самое большое удобство tail в том, что в качестве параметров может быть передано несколько файлов, т.е. вы можете отслеживать несколько связанных лог-файлов одновременно:
] # tail -f -n 5 -s 3 /home/sites/web/site.ru/logs/site.ru.log /var/log/httpd/domains/site.ru.error.log
Обратите внимание, я использовал конструкцию -s 3 – с помощью данного ключа задается интервал обновления в секундах, т.е. в данном случае перечитываться файлы будут раз в 3 секунды.
Просмотр логов в Linux с помощью less .
При всей простоте и удобстве tail обладает одним существенным недостатком – он показывает только последние строки и вы не имеете возможности поглядеть, что происходило до этих записей или в определенный момент времени. Для таких ситуаций лучше подходит утилита less .
Как видите мы можем спокойно листать содержимое файла с помощью стрелок курсора и клавиш PgUp и PgDn .
Запомните еще несколько полезных клавиш:
q – выход;
g – перейти в начало файла;
G – перейти в конец файла;
Ng – перейти на строку N (например, на 14 строку 14g);
N% – перейти на позицию N% (например, 35%);
F – перейти в режим отслеживания обновления файла, т.е. аналог tail -f ;
/pattern – прямой (вниз по файлу) поиск по образцу pattern;
?pattern – обратный (вверх по файлу);
n – следующее совпадение образца поиска;
N – предыдущее совпадение;
Выход из режима отслеживания Ctrl+C ;
Полный список всех остальных клавиш и режимов вы можете поглядеть самостоятельно – нажав h – помощь (очень советую нажать).
Теперь давайте посмотрим какие ключи можно передать less .
+F – cразу запустить less в режиме считывания хвоста:
] # less +F /var/log/httpd/domains/big-roll.ru.error.log
-I ? игнорировать регистр при поиске;
-N ? отображать номера строк;
-S ? усекать длинные строки;
Давайте подытожим – для просмотра логов в Linux удобно пользоваться утилитами tail и less . Первая отлично подходит для быстрого просмотра концовок лог-файлов или для отслеживания изменений сразу в нескольких файлах. Вторая более функциональна и лучше приспособлена для вдумчивого анализа.