journalctl: як запобігти транскрипції тексту в терміналі


60

Як я можу захистити довгі рядки від обрізання в терміналі? Наприклад, якщо я бігаю

journalctl -xn

Багато тексту я не можу прочитати. Я відкритий для використання інших програм / інструментів.


Використовуйте 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журнал, журнал журналу не повинен застосовувати -Sдо виклику less!! Тобто, встановлення PAGER = менше, а LESS = $ x (де $ x - будь-яка рядок, яка не містить S), повинна надавати бажану поведінку.
Вільям Перселл

1
Тобто журнал журналу повинен шанувати менше, а користувач також не повинен встановлювати SYSTEMD_LESS! (Вибачте, дверна ручка, це трохи зграя, яка, мабуть, не належить до коментаря до вашої відповіді)
Вільям Перселл

Дурний Вільям. Містер Поттерін знає, що найкраще для вас, і якщо вам це не подобається, ви явно помиляєтесь. </rant>
dannysauer

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(якщо ні, передайте вихід до неї), ви можете ввімкнути / вимкнути обертання рядка, ввівши -Sless), це працює і для інших lessпараметрів.


0

Зауважте також, що:

journalctl -f

покаже вам все останнє, як воно потрапляє, і обгортає, як будь-яка нормальна людина (або навіть систематик) очікує, що це дозволить легко читати, вставляти копію та все інше.


-1

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

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.