Як використовувати команду less в Linux

Команда less дозволяє користувачам переглядати текстові файли, відображаючи їхній вміст на екрані. Хоча на перший погляд вона може здаватися досить простою, насправді можливості цієї команди набагато ширші, ніж може здаватися спочатку.

Короткий огляд історії команди less

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

Поштовхом до створення less стала неможливість прокручувати текст назад у ранніх версіях more. Марк Нудельман вирішив розв’язати цю проблему, розробивши less. Його робота розпочалася у 1983 році, а перша версія для загального користування була випущена у 1985 році. Цікаво, що станом на жовтень 2019 року він все ще підтримує програму less.

Мабуть, важко знайти користувача Linux, який ніколи не користувався less. Навіть якщо вони не використовували її безпосередньо для перегляду файлів, вони майже напевно використовували команду man, яка у фоновому режимі викликає less для відображення сторінок довідки.

Ця команда приховує в собі безліч корисних можливостей.

Чому less є кращим вибором, ніж more

less постійно розвивалася з часом, додаючи нові функції. Вона має великий набір параметрів командного рядка та комбінацій клавіш. Щоб переконатися в перевазі less, достатньо порівняти сторінку man для less та сторінку man для more.

Хоча more згодом усунула недолік відсутності можливості перегляду тексту назад, ця функція працює лише для файлів, але не для вхідних даних, отриманих через конвеєр. less, натомість, здатна працювати з вхідними даними будь-якого типу.

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

Як читати файли за допомогою less

Щоб відкрити файл у 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

Нумерація рядків може бути корисною, якщо вам потрібно повернутися до певних рядків або розділів у файлах журналів та інших файлах, які не є звичайним текстом.

Як здійснювати пошук у less

Для пошуку в тексті файлу натисніть “/”, а потім введіть пошукову фразу. Пошук є чутливим до регістру. Ваша пошукова фраза буде відображена в нижньому рядку екрана. Натисніть “Enter”, щоб виконати пошук.

У прикладі нижче пошуковий термін – “Enfield”, який можна побачити в нижній частині екрана.

Пошук відбувається від поточної сторінки до кінця файлу. Щоб здійснити пошук по всьому файлу, спочатку перемістіться до початку файлу.

Якщо не буде знайдено збігів, вам буде повідомлено про це. У разі успішного пошуку, знайдений елемент буде відображено на екрані.

Щоб знайти наступний відповідний елемент, натисніть “n”. Щоб знайти попередній відповідний елемент, натисніть “N”.

Щоб здійснити пошук назад від поточної позиції до початку файлу, натисніть “?”, а потім введіть пошуковий термін. Щоб знайти наступний збіг, натисніть “n”. Щоб знайти попередній збіг, натисніть “N”.

Зверніть увагу, що під час пошуку назад “n” переміщує до наступного збігу ближче до початку файлу, а “N” – до попереднього збігу ближче до кінця файлу. Іншими словами, “n” і “N” змінюють напрямок пошуку при пошуку назад.

Як відкрити файл з певним пошуковим терміном

Ви можете скористатися параметром -p (шаблон), щоб почати перегляд файлу з першого збігу з пошуковим терміном. Замість першої сторінки файлу буде відображено сторінку з відповідним елементом. Звичайно, якщо пошуковий термін не буде знайдено на першій сторінці.

Зверніть увагу, що між -p і пошуковим терміном не повинно бути пробілу.

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

Файл відобразиться з виділеним першим збігом з пошуковим терміном.

Навігація в less: найкорисніші клавіші

Використовуйте ці клавіші для переміщення та пошуку в текстовому файлі:

Переміщення на один рядок вперед: стрілка вниз, Enter, e або j
Переміщення на один рядок назад: стрілка вгору, y або k
Переміщення на одну сторінку вперед: пробіл або Page Down
Переміщення на одну сторінку назад: 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.

Ви можете переглядати сторінку та шукати по каналі введення, як у звичайному файлі. Щоб переглянути останні повідомлення, натисніть “End”, щоб перейти до нижньої частини файлу.

Коли з’являються нові повідомлення, ви повинні постійно натискати “End”, щоб відображати нижню частину файлу. Це не дуже зручно. Щоб less завжди показував нижню частину тексту, навіть коли додаються нові дані, використовуйте параметр +F (вперед). Зверніть увагу на використання +, а не -, як для звичайного параметра.

dmesg | less +F

Прапорець параметра + вказує less, що параметр потрібно інтерпретувати так, ніби його ввели всередині less. Тому, якщо ви забули використати параметр +F, натисніть “F” всередині less.

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

У цьому режимі ви не можете прокручувати сторінки; він призначений для відображення нижньої частини тексту з конвеєра. Щоб вийти з цього режиму, натисніть Ctrl+c, і ви повернетеся до звичайного інтерактивного режиму less.

Як редагувати файли з less

Ви можете редагувати файли за допомогою less — ну, нібито. Команда не може редагувати файли безпосередньо, але якщо ви введете “v” під час перегляду файлу, файл буде передано до редактора за замовчуванням. Після виходу з редактора ви повернетеся до less.

Натисніть “v” під час перегляду файлу у less:

Файл буде завантажено в редактор за замовчуванням, у цьому випадку nano:

Коли ви закриєте редактор, ви повернетеся до less.

Висновок

Хоч як це дивно, less дійсно краща за more.