Поиск по сайту:

Как использовать команду less в Linux


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

История меньшего

У всего в Linux — и Unix — есть история, без каламбура. Программа less основана на программе more, которая была первоначально выпущена в 1978 году в версии 3.0 Berkeley Software Distribution Unix (3.0BSD). больше позволяло вам последовательно листать текстовый файл, отображая весь экран текста за раз.

Необходимость была матерью изобретения, и именно неспособность ранних версий more прокручивать файл назад побудила Марка Нудельмана разработать less и решить эту конкретную проблему. Эта работа началась в 1983 году, а первая версия была выпущена за пределами компании, в которой он работал, в 1985 году. По состоянию на октябрь 2019 года он по-прежнему занимается поддержкой less.

Интересно, есть ли пользователь Linux, который не использовал less? Даже если они не использовали его для просмотра выбранного текстового файла, скорее всего, они использовали команду man. И man вызывает less за кулисами, чтобы отобразить страницы man.

Это команда с множеством трюков в рукаве.

Почему лучше меньше, чем больше

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

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

Благодаря своей гибкости в навигации по файлам, просмотре нескольких файлов, поиске текста, перетаскивании и возврате к закладкам, а также работе с конвейерным вводом, less выигрывает безоговорочно. Используйте less вместо more .

Чтение файла с меньшими затратами

Чтобы загрузить файл в less, укажите имя файла в командной строке:

less Dr-Jekyll-and-Mr-Hyde-001.txt

Файл загружается и отображается. Верхняя часть (или «начало») файла отображается в окне терминала. Вы можете использовать колесо прокрутки мыши для прокрутки текста вперед и назад.

На клавиатуре используйте клавишу пробела или клавишу Page Down, чтобы перемещаться вперед по тексту на один экран за раз.

Page Up будет перемещаться по файлу назад (к «началу» файла). Клавиши Home и End перенесут вас непосредственно к началу и концу текстового файла соответственно.

Имя файла отображается в нижнем левом углу дисплея. Когда вы начинаете перемещаться по файлу, нижняя строка очищается. Он используется для отображения сообщений для вас и для ввода команд.

Нажмите «q», чтобы выйти из less.

Отображение номеров строк

Чтобы пронумеровать строки текстового файла, используйте параметр -N (номера строк).

less -N Dr-Jekyll-and-Mr-Hyde-001.txt

Номера строк могут быть полезны для возврата к определенным строкам или разделам в файлах журналов и других файлах, написанных нестандартным языком.

Поиск в менее

Для поиска по тексту файла нажмите «/», а затем введите поисковую фразу. Поиск чувствителен к регистру. Ваша поисковая фраза отображается в нижней строке дисплея. Нажмите «Ввод», чтобы выполнить поиск.

В этом примере поисковым запросом является «Энфилд», и его можно увидеть в нижней части дисплея.

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

Вам сообщат, если совпадений нет. Если совпадение найдено, дисплей перемещается для отображения найденного элемента.

Чтобы найти следующий соответствующий элемент, нажмите «n». Для поиска предыдущего совпадающего элемента нажмите «N».

Чтобы выполнить поиск назад от вашего текущего положения в файле к началу файла, нажмите «?» ключ и введите поисковый запрос. Чтобы найти следующий соответствующий элемент, нажмите «n». Для поиска предыдущего совпадающего элемента нажмите «N».

Обратите внимание, что при поиске в обратном направлении следующий совпадающий элемент (найденный с «n») является ближайшим к началу файла, а «N» соответствует предыдущему совпадающему элементу. ищет соответствующий элемент ближе к нижней части файла. другими словами, «n» и «N» меняют направление поиска, когда вы выполняете поиск в обратном направлении.

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

Вы можете использовать параметр -p (шаблон), чтобы less выполнял поиск в текстовом файле и находил первый соответствующий элемент. Затем он отобразит страницу с соответствующим элементом поиска вместо первой страницы файла. Если, конечно, искомый элемент не будет найден на первой странице файла.

Обратите внимание, что между -p и поисковым запросом нет пробела.

less -pEnfield Dr-Jekyll-and-Mr-Hyde-001.txt

Файл отображается с выделенным первым подходящим условием поиска.

Навигация в Less: самые полезные клавиши

Используйте эти клавиши для перемещения и поиска в текстовом файле.

  • Переместиться вперед на одну строку: стрелка вниз, Enter, e или j
  • Переместиться назад на одну строку: стрелка вверх, y или k
  • Перемещение вперед на одну страницу: пробел или страница вниз
  • Переместиться назад на одну страницу: Page Up или b
  • Прокрутите вправо вправо: стрелка вправо
  • Прокрутите влево влево: стрелка влево
  • Перейти к верху файла: Home или g
  • Перейти к концу файла: End или G
  • Перейти к определенной строке. Введите номер строки  и нажмите g
  • Перейти к процентному пути по файлу: введите процентное значение, а затем нажмите «p» или «%». (Вы даже можете вводить десятичные значения, поэтому, чтобы перейти к точке 27,2 процента по файлу, введите «27,2», а затем нажмите «p» или «%». Зачем вам использовать десятичные дроби? Честно говоря, я понятия не имею.)
  • Поиск вперед. Нажмите «/», введите поисковый запрос, например «/Jekyll», и нажмите Enter.
  • Поиск назад. Нажмите «?» и введите поисковый запрос, например «/Hyde», и нажмите Enter
  • Следующий соответствующий элемент поиска: n
  • Предыдущий соответствующий элемент поиска: N
  • Выйти: q

Сожмите пустые строки

Параметр -s (сжать пустые строки) удаляет ряд пустых строк и заменяет их одной пустой строкой.

В нашем файле примера есть несколько последовательных пустых строк, давайте посмотрим, как less обрабатывает их, когда мы используем параметр -s:

less -s Dr-Jekyll-and-Mr-Hyde-001.txt

Все двойные (или более) пустые строки были заменены одной пустой строкой в каждом случае.

Просмотр нескольких файлов

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

less Dr-Jekyll-and-Mr-Hyde-001.txt Dr-Jekyll-and-Mr-Hyde-002.txt

Файлы открываются, и отображается первый файл. Вам показывают, какой файл вы просматриваете, и сколько файлов было загружено. Это выделено ниже.

Чтобы просмотреть следующий файл, нажмите «:», а затем нажмите «n».

Ваш дисплей изменится, чтобы показать второй файл, а информация в нижней строке обновится, чтобы показать, что вы просматриваете второй файл. Это выделено ниже.

Чтобы перейти к предыдущему файлу, введите «:», а затем нажмите «p».

Использование меток

less позволяет вам опустить маркер, чтобы вы могли легко вернуться к отмеченному отрывку. Каждый маркер представлен буквой. Чтобы поставить отметку в самой верхней отображаемой строке, нажмите «m», а затем нажмите букву, которую вы хотите использовать, например «a».

Когда вы нажимаете «m», в нижней строке дисплея отображается подсказка, ожидающая, пока вы нажмете буквенную клавишу.

Как только вы нажимаете букву, подсказка удаляется.

Из любого другого места в файле вы можете легко вернуться к метке, нажав апостроф (или одинарную кавычку) «‘», а затем нажав букву метки, к которой вы хотите вернуться. Когда вы нажимаете клавишу «‘», вам будет предложено указать метку, к которой вы хотите перейти.

Нажмите букву метки, к которой вы хотите вернуться, и для вас отобразится этот раздел текстового файла.

Использование конвейерного ввода с Less

less может отображать информацию, поступающую в виде потока передаваемого текста, так же легко, как если бы это был файл.

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

dmesg | less

Отображается вывод dmesg.

Вы можете пролистывать и выполнять поиск по каналу ввода так же, как если бы это был файл. Чтобы просмотреть самые последние сообщения, нажмите «Конец», чтобы перейти к нижней части файла.

По мере поступления новых сообщений вы должны продолжать нажимать «Конец», чтобы заставить less отображать нижнюю часть файла. Это не очень удобно. Чтобы less всегда отображал нижнюю часть текста, даже при добавлении новых данных, используйте параметр +F (вперед). Обратите внимание на использование + а не - в качестве флага параметра.

dmesg | less +F

Флаг параметра + сообщает less, чтобы он обрабатывал параметр так, как если бы вы использовали эту команду внутри less. Поэтому, если вы забыли использовать опцию +F, нажмите «F» внутри less.

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

Вы не можете прокручивать или листать страницы в этом режиме; он посвящен отображению нижней части передаваемого текста. Чтобы выйти из его режима, нажмите Ctrl+c, и вы вернетесь в обычный интерактивный режим less.

Редактирование файлов с меньшими затратами

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

Нажмите «v» при просмотре файла в less:

Файл загружается в редактор по умолчанию, в данном случае nano:

Когда вы закрываете редактор, вы превращаетесь в less.

В итоге

Как бы парадоксально это ни звучало, в данном случае less > more.

RELATED: Best Linux Laptops for Developers and Enthusiasts