Разработчик(и) | Марк Нудельман |
---|---|
Первоначальный выпуск | 1984 (1984) | [1]
Стабильный релиз | 661 [2] / 30 июня 2024 г. (2024-06-30) |
Репозиторий | github.com/gwsw/less |
Написано в | С |
Операционная система | Кроссплатформенный |
Тип | Системная утилита |
Лицензия | Двойная лицензия GNU GPLv3 и специальная лицензия в стиле BSD |
Веб-сайт | www.greenwoodsoftware.com/less/ |
less
это программа -пейджер терминала в Unix , Windows и Unix-подобных системах, используемая для просмотра (но не изменения) содержимого текстового файла по одному экрану за раз. Она похожа на more , но имеет расширенные возможности, позволяющие как прямую, так и обратную навигацию по файлу. В отличие от большинства текстовых редакторов/просмотрщиков Unix, less не нужно читать весь файл перед запуском, что позволяет просматривать его немедленно, независимо от размера файла.
Марк Нудельман изначально писал less
в 1983–85 годах, когда ему была нужна версия, more
способная делать обратную прокрутку отображаемого текста. Название произошло от шутки «делать «назад больше». Первоначально less
был разработан для Unix, но был портирован на ряд других операционных систем, включая MS-DOS , Microsoft Windows , OS/2 и OS-9 , а также на Unix-подобные системы, такие как Linux . [3] Он по-прежнему поддерживается Нудельманом сегодня.
Чтобы помочь запомнить разницу между less
и more
, распространенной шуткой является выражение " меньше > больше ", подразумевающее, что имеет большую функциональность, чем больше . Похожая поговорка - " есть , более или менее".less
less
more
less можно вызывать с параметрами для изменения его поведения, например, количества строк для отображения на экране. Некоторые параметры различаются в зависимости от операционной системы. Пока less отображает файл, можно использовать различные команды для навигации по файлу. Эти команды основаны на командах, используемых more и vi . Также можно искать шаблоны символов в файле.
По умолчанию less выводит содержимое файла на стандартный вывод (по одному экрану за раз). Если аргумент имени файла опущен, он выводит содержимое из стандартного ввода (обычно вывод другой команды через канал ). Если вывод перенаправляется куда-либо, кроме терминала , например, на канал другой команды, less ведет себя как cat .
Расширение «lesspipe» может автоматически определять типы файлов, такие как PDF , мультимедиа и сжатые архивы , а также автоматически определять, какую программу запустить для отображения информации о файле, такой как текст из файла PDF, метаданные фотографий, списки файлов в сжатом архиве и содержимое одного файла в сжатом архиве. [4] [5]
Синтаксис команды :
меньше [опции] [имя_файла]...
-g
: Выделить только текущее совпадение любой искомой строки.-i
: Поиск без учета регистра.-m
: Показать более подробную подсказку, включая положение файла.-N
: Показывать номера строк (полезно для просмотра исходного кода ).-x3
: Установить табуляции (количество столбцов на символ табуляции) на указанное число (в данном примере 3) (полезно для просмотра исходного кода ).-S
: Отключить перенос строк («обрезать длинные строки»). Длинные строки можно увидеть при боковой прокрутке.-X
: Оставить содержимое файла на экране при выходе из less.-?
: Показать помощь.--follow-name
: Режим следования для файлов журнала, которые заменяются во время просмотра.Ключ | Команда |
---|---|
Space bar | Следующая страница |
d | Следующая половина страницы |
b | Предыдущая страница |
u | Предыдущая половина страницы |
v | Редактировать содержимое |
j или ↵ Enter | Следующая строка |
k | Предыдущая строка |
Home | Верх файла |
End | Конец файла |
F | Follow Mode (для расширения журналов или каналов). Прерывание (или из v581 + [6] ) для отмены.CtrlX |
g или < | Первая линия |
G или > | Последняя строка |
⟨n⟩ G | Линия⟨n⟩ |
/⟨text⟩ | Прямой поиск по ⟨text⟩ . Текст интерпретируется как регулярное выражение . |
?⟨text⟩ | Обратный поиск как/ |
&⟨text⟩ | grep как фильтр |
n | Следующий поисковый запрос |
N | Предыдущий поисковый запрос |
Escu | Отключить выделение совпадений (см. -g параметр командной строки) |
-⟨c⟩ | Переключить опцию ⟨c⟩ , например, включить/выключить функцию учета регистра при поиске-i |
m⟨c⟩ | Установить отметку⟨c⟩ |
'⟨c⟩ | Перейти к Марку⟨c⟩ |
= или +CtrlG | Информация о файле |
:n | Следующий файл |
:p | Предыдущий файл |
h | Помощь. Это представлено с less , чтобы выйти.q |
q | Покидать |
less -M readme.txt # Прочитать "readme.txt"
less +F /var/log/mail.log # Режим следования за
файлом журнала * | less # Более простой анализ файла
less -I -p void *.c # Поиск "void" без учета регистра во всех файлах .c
Параметры --buffers=n
и --auto-buffers
управляют тем, сколько памяти less может использовать для буферизации входных данных. Это особенно актуально, когда less напрямую обращается к именованному файлу, который изменяется или удаляется, пока less все еще работает, и когда less получает данные из канала, и к данным нельзя получить произвольный доступ или сгенерировать их заново. С другой стороны, неограниченная буферизация означает, что less будет запрашивать столько памяти, сколько ему поступают данные, что может привести к использованию системой виртуальной памяти и перекачке большого количества данных между ОЗУ и дисками (что значительно снижает производительность системы для большинства приложений на хосте) или даже к еще большему истощению памяти, когда любое приложение на хосте, запрашивающее память, может получить отказ в этом запросе или может дать сбой при попытке доступа к памяти, которую ОС обещала, но не может найти, когда приложение фактически пытается ее использовать, и происходит сбой страницы. По этой причине некоторые компании/организации настаивают на том, чтобы less использовался только с фиксированной буферизацией — или вообще не использовался — на производственных машинах. [ необходима цитата ]