Bash всегда выводит less, как это отключить?

Bash всегда выводит less, как это отключить?

После недавнего обновления, bashпохоже, всегда выводится в less, что приводит к разбиению на страницы для многих команд. Кто-нибудь знает, как это отключить less?

Пример вывода дляsystemctl status

Вывод статуса systemctl

решение1

Страница руководства systemctl( man systemctl) наглядно объясняет это поведение и предлагает варианты его изменения:

$SYSTEMD_PAGERPager использовать, когда --no-pagerне задано; переопределяет $PAGER. Если ни то, $SYSTEMD_PAGERни другое не $PAGERзадано, по очереди пробуется набор известных реализаций пейджера, включая less(1) и more(1), пока одна не будет найдена. Если реализация пейджера не обнаружена, пейджер не вызывается. Установка этой переменной среды в пустую строку или значение " cat" эквивалентна передаче --no-pager.

Поэтому в вашем случае решением будет установить переменную окружения при входе в систему:

export SYSTEMD_PAGER=cat

решение2

Более широко, вы можете определить среду PAGER в конфигурации среды выполнения bash.

# In .bashrc or .bash_profile

export PAGER='cat'

решение3

Я часто вхожу в систему, где менять ~/root/.bashrc, /etc/profileи т. д. — плохая идея. И я не всегда помню название параметра SYSTEMD_PAGER.

Поэтому, в качестве ленивого хака, я просто передаю вывод через catили less(мой любимый пейджер), вот так:

systemctl status | cat
systemctl status | less

Этот трюк catработает и для многих других программ. Например, если я не хочу иметь дело с тем, как infoперемещаться по страницам, я просто делаю это:

info bash | less

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