Less: различия между версиями

Материал из SysWiki
добавлена небольшая часть информации
дано простое описание работы с less
Строка 2: Строка 2:


== Общие сведения ==
== Общие сведения ==
Утилита less предназначена для постраничного показа на экране терминала содержимого текстовых файлов или потока вывода другой программы. Утилита является продвинутым аналогом программы more, которая обладает достаточно ограниченным функционалом (например, не позволяет осуществлять прокрутку текста назад).


== Примеры использования ==
=== Простейшие примеры вызова программы ===
less file.txt — постранично покажет содержимое файла file.txt
 
ls /home/user | less — постранично покажет вывод команды ls /home/user (то есть, список файлов в домашнем каталоге пользователя user)
 
== Опции командной строки и команды ==
Как и многие другие программы, при вызове утилиты less можно указывать опции командной строки, также в процессе работы ею можно управлять через команды, но при этом команды можно передать как опции командной строки (с предшествующим символом «+»), и наоборот, многие опции командной строки можно ввести как команды в процессе работы программы (просто набирая их на клавиатуре). К примеру, опция «-i» делает поиск нечувствительным к регистру (если шаблон для поиска набран в нижнем регистре), но, если эта опция не была добавлена при вызове, то, в процессе работы с less можно просто набрать символы «-i» в качестве команды, и переключить режим поиска, и, обратный пример, если после вызова less нужно попасть в самый конец файла, что делается командой G, можно, вместо ручного ввода команды, запустить less таким образом: less +G.
 
Обычно программа less используется для просмотра одного файла (или передаваемой ей на стандартный ввод информации), но также она может показывать (по очереди) содержимое нескольких файлов. В последнем случае, при указании команды в командной строке, префикс «+» означает, что команда будет выполнена только для первого файла, если же она должна быть выполнена для каждого из файлов, нужно использовать префикс «++». Например, чтобы открыть два файла и перейти в конец каждого из них, команда less может быть вызвана таким образом:
 
less ++G file0.txt file1.txt
 
== Полезные опции и команды ==
Полный список опций и команд программы less достаточно обширен и может быть просмотрен при помощи команды <code>man less</code>. Ниже будет представлен небольшой набор возможно наиболее полезных или важных опций. Как уже было сказано выше, многие опции командной строки могут быть
 
=== Опции командной строки ===
{| class="wikitable"
|+
!Опция
!Назначение
|-
| -i или --ignore-case
|При поиске игнорировать регистр символов, если шаблон набран в нижнем регистре (например, строки «test» и «Test» попадут под шаблон «test», но под шаблон «Test» попадёт только вторая из них).
|-
| -I или --IGNORE-CASE
|При поиске полностью игнорировать регистр символов.
|-
| -N или --LINE-NUMBERS
|Показывать номера строк.
|-
| +
|Рассматривать последующие символы (до разделителя) как команду, которая должна быть выполнена после открытия файла (только для первого файла, если открывается несколько файлов).
|-
| ++
|Аналогично +, но команда будет выполнена для всех открытых в less файлов.
|}
 
=== Команды ===
{| class="wikitable"
|+
!Команда
!Назначение
|-
|h или H
|Вывод справки по командам.
|-
|q
|Выход из less
|-
|/
|Поиск вперёд. После символа / должен быть введён шаблон, который рассматривается как регулярное выражение, но, если после / (и до ввода шаблона) нажать комбинацию клавиш Ctrl-R, то будет осуществлён простой текстовой поиск.
|-
|?
|Аналогично /, но поиск идёт в обратном направлении.
|-
|g
|Переход в начало файла. Если перед командой набрать номер строки, будет осуществлён переход к ней (например, 10g означает переход к десятой строке.
|-
|G
|Переход в конец файла. Если перед командой набрать номер строки, будет осуществлён переход к ней, как и в случае команды g.
|-
|=
|Показать информацию о файле в последней строке.
|-
|:n
|Переход к следующему файлу (если при вызове less в числе параметров было передано больше одного имени файла).
|-
|:p
|Переход к предыдущему файлу (если при вызове less в числе параметров было передано больше одного имени файла).
|-
|v
|Вызвать текстовый редактор.
|-
|!
|Запустить командную оболочку.
|}


== Вопросы безопасности ==
== Вопросы безопасности ==
Команда less позволяет выполнять команды оболочки. Если в процессе выполнения команды less нажать символ «!», то далее можно ввести команду оболочки, например, запустить интерпретатор bash. Чтобы запретить такое поведение, нужно установить переменную окружения LESSSECURE в значение 1.
Команда less позволяет выполнять команды оболочки. Если в процессе выполнения команды less нажать символ «!», то далее можно ввести команду оболочки, например, запустить интерпретатор bash. Чтобы запретить такое поведение, нужно установить переменную окружения LESSSECURE в значение 1. Это может быть актуально например для скриптов, выполняемых через sudo: если в таком скрипте пользователю, при помощи less, постранично показывается некий текст, то пользователь может получить повысить свои привилегии в системе, если переменная LESSSECURE не будет установлена в 1.

Версия от 01:39, 9 февраля 2024

less — утилита для постраничного вывода информации.

Общие сведения

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

Простейшие примеры вызова программы

less file.txt — постранично покажет содержимое файла file.txt

ls /home/user | less — постранично покажет вывод команды ls /home/user (то есть, список файлов в домашнем каталоге пользователя user)

Опции командной строки и команды

Как и многие другие программы, при вызове утилиты less можно указывать опции командной строки, также в процессе работы ею можно управлять через команды, но при этом команды можно передать как опции командной строки (с предшествующим символом «+»), и наоборот, многие опции командной строки можно ввести как команды в процессе работы программы (просто набирая их на клавиатуре). К примеру, опция «-i» делает поиск нечувствительным к регистру (если шаблон для поиска набран в нижнем регистре), но, если эта опция не была добавлена при вызове, то, в процессе работы с less можно просто набрать символы «-i» в качестве команды, и переключить режим поиска, и, обратный пример, если после вызова less нужно попасть в самый конец файла, что делается командой G, можно, вместо ручного ввода команды, запустить less таким образом: less +G.

Обычно программа less используется для просмотра одного файла (или передаваемой ей на стандартный ввод информации), но также она может показывать (по очереди) содержимое нескольких файлов. В последнем случае, при указании команды в командной строке, префикс «+» означает, что команда будет выполнена только для первого файла, если же она должна быть выполнена для каждого из файлов, нужно использовать префикс «++». Например, чтобы открыть два файла и перейти в конец каждого из них, команда less может быть вызвана таким образом:

less ++G file0.txt file1.txt

Полезные опции и команды

Полный список опций и команд программы less достаточно обширен и может быть просмотрен при помощи команды man less. Ниже будет представлен небольшой набор возможно наиболее полезных или важных опций. Как уже было сказано выше, многие опции командной строки могут быть

Опции командной строки

Опция Назначение
-i или --ignore-case При поиске игнорировать регистр символов, если шаблон набран в нижнем регистре (например, строки «test» и «Test» попадут под шаблон «test», но под шаблон «Test» попадёт только вторая из них).
-I или --IGNORE-CASE При поиске полностью игнорировать регистр символов.
-N или --LINE-NUMBERS Показывать номера строк.
+ Рассматривать последующие символы (до разделителя) как команду, которая должна быть выполнена после открытия файла (только для первого файла, если открывается несколько файлов).
++ Аналогично +, но команда будет выполнена для всех открытых в less файлов.

Команды

Команда Назначение
h или H Вывод справки по командам.
q Выход из less
/ Поиск вперёд. После символа / должен быть введён шаблон, который рассматривается как регулярное выражение, но, если после / (и до ввода шаблона) нажать комбинацию клавиш Ctrl-R, то будет осуществлён простой текстовой поиск.
? Аналогично /, но поиск идёт в обратном направлении.
g Переход в начало файла. Если перед командой набрать номер строки, будет осуществлён переход к ней (например, 10g означает переход к десятой строке.
G Переход в конец файла. Если перед командой набрать номер строки, будет осуществлён переход к ней, как и в случае команды g.
= Показать информацию о файле в последней строке.
:n Переход к следующему файлу (если при вызове less в числе параметров было передано больше одного имени файла).
:p Переход к предыдущему файлу (если при вызове less в числе параметров было передано больше одного имени файла).
v Вызвать текстовый редактор.
! Запустить командную оболочку.

Вопросы безопасности

Команда less позволяет выполнять команды оболочки. Если в процессе выполнения команды less нажать символ «!», то далее можно ввести команду оболочки, например, запустить интерпретатор bash. Чтобы запретить такое поведение, нужно установить переменную окружения LESSSECURE в значение 1. Это может быть актуально например для скриптов, выполняемых через sudo: если в таком скрипте пользователю, при помощи less, постранично показывается некий текст, то пользователь может получить повысить свои привилегии в системе, если переменная LESSSECURE не будет установлена в 1.