journalctl: как предотвратить усечение текста в терминале

60

Как я могу предотвратить усечение длинных строк в терминале? Например, если я бегу

journalctl -xn

Там много текста, который я не могу прочитать. Я открыт для использования других программ / инструментов.

P.Brian.Mackey
источник
Используйте journalctl -x, по -nумолчанию до 10 строк только в журнале.
Cuonglm

Ответы:

63

Из journalctlсправочной страницы:

   The output is paged through less by default, and long lines are
   "truncated" to screen width. The hidden part can be viewed by using the
   left-arrow and right-arrow keys. Paging can be disabled; see the
   --no-pager option and the "Environment" section below.

Если вы не хотите постоянно использовать левую и правую клавиши со стрелками, просто перенаправьте их по адресу less:

$ journalctl -xn | less

Это обернет строки, которые являются слишком длинными для вашего терминала (поведение по умолчанию less, которое journalctlпереопределяет).

Или, конечно, если вы не возражаете против использования прокрутки вашего терминала, вы можете вообще не использовать пейджер:

$ journalctl -xn --no-pager
Дверная ручка
источник
О да. Я видел.
cuonglm
3
Это действительно расстраивает. Если для пейджера установлено значение lessи LESSне включено -S, journalctl не должен применяться -Sк вызову less!! То есть установка PAGER = less и LESS = $ x (где $ x - любая строка, не содержащая S) должна дать желаемое поведение.
Уильям Перселл
1
То есть journalctl должен соблюдать LESS, и пользователь не должен также устанавливать SYSTEMD_LESS! (Извинения, дверная ручка, это немного напыщенная речь, которая, вероятно, не является комментарием к вашему ответу)
Уильям Перселл
Глупый Уильям. Мистер Поттеринг знает, что лучше для вас, и если вам это не нравится, вы явно ошибаетесь. </
Rant
15

Я также делаю:

journalctl -xn | less

Но вы также можете установить SYSTEMD_LESSпеременную окружения:

SYSTEMD_LESS=FRXMK journalctl -xn
# Or even
# SYSTEMD_LESS="" journalctl -xn
# The environment variable needs to be there, but can be the empty string

Я получил это от: [systemd-devel] [PATCH] пейджер: по умолчанию переносить длинные строки

Установите его в свой .bashrc и покончите с этим! :-)

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

Петр В. Мёрч
источник
Поддержка SYSTEMD_LESS добавлена ​​только недавно, например, у CentOS 7 нет версии, которая ее поддерживает
jnas
Работает как минимум на CentOS 7.5.
Головокружение
Отличное решение, я также добавил Defaults env_keep += "LESS SYSTEMD_LESS"к /etc/sudoers. Это для тех времен, когда я случайно поставил sudoперед например systemctl status.
Метаморфизм
Это не просто "немного высокомерно", это невероятно раздражает. Я надеюсь, что это не высокомерие, а невежество, которое движет этим поведением.
Уильям Перселл
Посмотрел на исходный код. Определенно игнорировать выбор пользователя в LESS просто глупо. Я до сих пор не уверен, что это высокомерие или невежество, но, вероятно, это здоровая комбинация двух.
Уильям Перселл
2

Если программа уже использует less(если нет, передайте вывод на него), вы можете включить / отключить перенос строки, набрав -S(in less), Это работает и для других lessопций.

Томас Эркер
источник
0

Обратите внимание, что:

journalctl -f

покажет вам все последние новости, как это происходит, и оберните, как любой нормальный человек (или даже системный администратор), ожидал бы легкого чтения, копирования и всего остального.

mlncn
источник
-1

Я печатаю в терминале,
journalctl | moreотлично работает для меня, тогда я использую стрелки вверх или вниз.

user309707
источник