
решение1
Страница руководства systemctl
( man systemctl
) наглядно объясняет это поведение и предлагает варианты его изменения:
$SYSTEMD_PAGER
Pager использовать, когда--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