Утилита more предназначена для постраничного просмотра файлов в терминале Linux. Своим названием она обязана надписи more (в русскоязычном варианте — дальше), появляющейся внизу каждой страницы.
Команда more linux — одна из самых примитивных команд для работы с текстом. Её ближайшая родственница — команда less — обладает куда большим набором опций и дополнительных возможностей. Давайте разберемся с её синтаксисом и примерами использования.
Содержание статьи
Синтаксис и опции more
В эмуляторе терминала 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
Для того, чтобы просмотреть текст из файла, применяется команда:
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.
Выводы
Эта вполне подходит для выполнения наиболее тривиальных задач при просмотра текста. У неё простой синтаксис, мало опций и небольшое количество дополнительных возможностей для управления выводом, однако, иногда и этого набора более чем достаточно.
а как же less ))
Less здесь - https://losst.pro/komanda-less-v-linux