Команды bash, которые не помещаются на одной странице — сделайте вывод прокручиваемым

Команды bash, которые не помещаются на одной странице — сделайте вывод прокручиваемым

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

Я запускаю окно терминала bash, и некоторые команды слишком велики для размещения на странице (например ps -A, )

Я смутно припоминаю параметр/метод командной строки, который показывает вывод команды постранично, чтобы я мог прокручивать вывод, но не могу вспомнить, что это такое... Есть какие-нибудь указания?

решение1

Для команд, которые я часто использую, я обычно настраиваю functionв своем.bashrcчтобы они разбивались на страницы, если они длиннее экрана.

Как в вашем примере: (ps -A)

function ps { command ps "$@" |& less -F; }

Это заменяется psфункцией с именем ps, которая вызывает исходную psкоманду с любыми аргументами, указанными в командной строке, а затем передает вывод (stdoutиstderr, используя |&конвейер) в less -F, который приостанавливается, если экран заполнен больше, чем нужно, но немедленно завершается, если экран заполнен меньше, чем нужно.

ОЧЕНЬ удобно, не мешает ничему, с чем я работал до сих пор, и просто круто!

Вы даже можете добавлять часто используемые опции в команды/функции:

function nm { command nm --demangle "$@" |& less -F; }

Это заставляет nmвсегда разбирать символы C++. Иразбивает вывод на страницы. Ура!

я бегуДебиан, поэтому я использую эту apt-cacheкоманду довольно часто,поискипоказыватьВ основном. Эта функция заставляет эти конкретные опции разбивать на страницы,поисквывод сортируется, и все разбивается на страницы:

function apt-cache { case  "$1" in "search") command apt-cache "$@" | sort | less -F;; *) command apt-cache "$@" | less -F;; esac; }

Если команда — «search», отсортируйте вывод, затем разбейте его на страницы с помощью less -F, но если команда — что-то другое, просто разбейте на страницы, без сортировки.

Иногда я забываю, что у меня есть функции, и делаю что-то вроде:

apt-cache search gcc | less

Функция не мешает, все работает как надо, никакого вреда.

Еще одна маленькая настройка, я использую ее .bashrcна всех своих системах, поэтому иногда утилита может быть не установлена, и тогда нет необходимости в функции. Я делаю их условными, например так:

which apt-cache &>/dev/null && function apt-cache { case  "$1" in "search") command apt-cache "$@" |& sort | less -F;; *) command apt-cache "$@" |& less -F;; esac; }

Эта команда просто использует whichкоманду для определения доступности программы. Если ее нет, она тихо завершается ошибкой и пропускает установку функции. Таа-даа!

решение2

Обычный метод — передать вывод в «less».

ls -R / | less

qэто ключ к выходу, как и на странице руководства.

Если команда может выдавать ошибки или другой вывод в stderr, вы можете также направить его в конвейер.

ls -R 2>&1 | less

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

решение3

Передайте вывод в «more»

output | more -d


Enter - > Scroll by line
Space - > Scroll by Page
q     - > Quit

Протестировано на ОС на базе RPM.

Связанный контент