Способы оплаты Abuse

Команда more в Linux

26.11.2021, 20:00

Утилита more подходит для постраничного просмотра файлов в терминале Linux. Своим названием она обязана надписи more, появляющейся внизу каждой страницы. Команда more linux  одна из самых примитивных команд для работы с текстом. Её ближайшая родственница — команда less — обладает куда большим набором опций и дополнительных возможностей. Давайте разберемся с её синтаксисом и примерами использования.

Синтаксис, опции

В эмуляторе терминала Linux команда записывается так:

$ more опции файл

Список опций команды:

  • -d — вывод информации в конце страницы о клавишах, использующихся для продолжения работы, завершения её или получения инструкций;
  • -l — игнорирование в тексте символа разрыва страницы;
  • -f — подсчёт числа логических строк вместо экранных;
  • -p — очистка экрана терминала для того, чтобы пользователю не пришлось пользоваться прокруткой перед выводом следующей порции текста;
  • -c — устранение потребности в прокрутке (как и -p) — отображение текста, начиная с верха экрана, и стирание при этом предыдущего вывода построчно;
  • -s — замена нескольких пустых строк, расположенных подряд, одной пустой строкой;
  • -u — удаление подчёркивания;
  • -n — отображение n-го количества строк;
  • +n — отображение текста, начиная со строки с номером n;
  • +/строка — поиск в файле указанной строки и начало вывода текста именно с неё;
  • --help — вызов справки;
  • -v (--version) — вывод на экран текущей версии утилиты.

Также у команды more есть собственные горячие клавиши и интерактивные команды:

  • h (?) — помощь (вывод информации только об интерактивных командах);
  • ПРОБЕЛ — отображение следующей порции текста (по умолчанию количество строк зависит от текущего размера окна терминала);
  • z — то же, что и ПРОБЕЛ;
  • ENTER — вывод текста построчно (шаг команды — одна строка);
  • d (^D) — прокрутка текста на количество строк, соответствующее размеру терминала;
  • q (Q) — выход из утилиты;
  • s — переход на одну строку вперёд;
  • f — переход на одну экранную страницу вперёд;
  • b (^B) — переход на одну экранную страницу назад;
  • ' — возвращение к месту начала поиска;
  • = — отображение текущего количества строк;
  • /pattern — поиск с использованием регулярных выражений;
  • n — поиск слов и фраз, соответствующих последнему использованному регулярному выражению;
  • !command (:command) — выполнение команды в субоболочке;
  • v — открытие файла в текстовом редакторе, назначенном по умолчанию, а если таковой не найден, использование консольного текстового редактора для открытия файла;
  • ^L — удаление с экрана всего, кроме содержимого файла;
  • :n — переход к следующему файлу;
  • :p — переход к предыдущему файлу;
  • :f — вывод названия текущего файла и количества строк в нём;
  • . - повторное выполнение предыдущей команды.

Как пользоваться

Для того, чтобы просмотреть текст из файла, применяется команда:

$ more example-file-for-more-command.txt

Также в команде можно перечислить несколько имён файлов одно за другим, разделяя их пробелом. Содержимое этих файлов будет выведено в том же порядке. Пример:

more abc1.txt dfg2.txt

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

Порой необходимо вывести на экран не весь текст, а только его часть. Для таких случаев предусмотрены опции - (минус) и + (плюс), рядом с которыми указывается число строк. К примеру, чтобы увидеть содержимое файла, начиная с 8-й строки, следует добавить к команде опцию +8, а чтобы команда выводила результат, состоящий максимум из 5-ти строк, опцию -5:

more +8 -5 example-file-for-more-command.txt

По умолчанию команда more Linux считает строкой именно экранную строку — количество символов, которое помещается в один ряд по ширине окна. Для выполнения счёта в логических строках (при наборе текста они разделяются нажатием Enter), используется опция -f. Пример:

more -f +8 -5 example-file-for-more-command.txt

more умеет работать не только с текстовыми файлами — в неё можно перенаправлять вывод других команд (конвейеризация). Первой указывается основная команда, второй — more с требуемыми опциями. Команды обязательно разделяются вертикальной чертой. Пример:

locate bin | more -10

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

Чтобы узнать номер текущей строки, следует нажать клавишу =, а чтобы просмотреть файл в текстовом редакторе — клавишу v.

Отметим, что не все команды могут быть выполнены, если в утилиту перенаправлен вывод другой команды. Открытие текстового редактора, как и переход на одну страницу назад (b или ^B) работает только при просмотре текстовых файлов.

Чтобы получить список всех интерактивных команд, следует нажать клавишу h.