По умолчанию systemd (v245) на Ubuntu 20.04 focal, если я делаю systemctl status $THING
, и строки вывода длиннее, чем мой экран, тогда пейджер по умолчанию (меньше?) будет делать горизонтальную прокрутку. Я бы предпочел, чтобы дополнительный текст был на следующих строках ("word wrap")
какую переменную окружения я могу установить, чтобы изменить горизонтальную прокрутку на "поместить остаток строки на следующую строку"?
Я знаю, что systemctl --no-pager $THING
или systemctl status $THING | cat
будут работать в этом случае, но это дополнительный текст, который нужно набирать каждый раз. Я хочу, чтобы systemctl status $THING
всегда работал без необходимости добавлять лишние биты.
По умолчанию systemctl
порождает меньше
в качестве пейджера (если он доступен, но включен большинство систем, это так). В этом случае параметру меньше
задаются параметры FRSXMK
, из которых S
отвечает за не сворачивание длинных строк.
Если установлена переменная среды SYSTEMD_LESS
, ее содержимое обрабатывается как флаги, которые должны быть присвоены less
, если less
- это пейджер, который в настоящее время используется . Поэтому, если вы опустите флаг S
в переменной и зададите
export SYSTEMD_LESS="FRXMK"
, тогда systemctl
будет вести себя точно так же, как и раньше, за исключением того, что длинные строки будут складываться.
Стоит отметить, что вы можете переключить перенос строк в пределах меньше
, набрав -S
и нажав Enter.
Вы можете сделать no-pager постоянным, экспортировав пустую переменную окружения SYSTEMD_PAGER
, т.е.:
export SYSTEMD_PAGER=
Но вы заметите, что теперь systemd эллипсирует длинные строки, поэтому вы также должны отключить это с помощью опций командной строки -l
, --full
. К сожалению, переменной окружения для изменения этого параметра нет.
Для полного решения я бы предложил псевдоним оболочки для systemctl
, например:
alias systemctl='systemctl --no-pager --full'