Для команд, которые я часто использую, я обычно настраиваю function
в своем .bashrc, чтобы сделать их разбиение на страницы, если они длиннее экрана.
Как ваш пример: (PS-A)
function ps { command ps "$@" |& less -F; }
Это заменяет ps
функцией с именем ps
, которая вызывает исходную команду ps
с любыми аргументами, указанными в командной строке, а затем направляет вывод (stdout и stderr, используя |&
pipe) в less -F
, который делает паузу, если есть больше чем полный экран, но выходит немедленно, если он меньше полного экрана.
ОЧЕНЬ удобно, не мешает ничему, с чем я работал до сих пор, и просто круто!
Вы также можете добавить часто используемые опции в команду / функции:
function nm { command nm --demangle "$@" |& less -F; }
Это заставляет nm
всегда разбирать символы C++. И разбивает на страницы вывод. Ура!
Я использую Debian, поэтому довольно часто использую команду 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
чтобы определить, доступна ли программа, а если нет, то тихо завершается сбоем и пропускает установку функции. Таа Даа!