journalctl:如何防止文本在终端中被截断


59

如何防止长字符串在终端中被截断?例如,如果我跑步

journalctl -xn

有很多我看不懂的文字。我愿意使用其他程序/工具。


使用journalctl -x-n默认仅在日志中显示10行。
cuonglm

Answers:


62

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
这真令人沮丧。如果pager设置为less,并且LESS不包括-S,则journalctl不应应用于!! -S的调用。less也就是说,设置PAGER = less和LESS = $ x(其中$ x是不包含S的任何字符串)应该提供所需的行为。
威廉·珀塞尔

1
也就是说,journalctl应该尊重LESS,并且用户不必也设置SYSTEMD_LESS!(道歉,门把手,这有点夸大其词的,可能不属于为你的答案评论)
威廉Pursell

傻威廉。波特先生知道最适合自己的东西,如果您不喜欢它,那显然是错误的。</ 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 2015年

至少在CentOS 7.5上有效。
眩晕

很好的解决方案,我还添加Defaults env_keep += "LESS SYSTEMD_LESS"/etc/sudoers。这是在那些我不小心放在sudo例如的前面的时候systemctl status
变形的

这不仅是“有点傲慢”,而且令人讨厌。我希望不是这种自负,而是导致这种行为的无知。
威廉·珀塞尔

浏览源代码。在LESS中专门覆盖用户的选择只是愚蠢的。我仍然不确定这是傲慢还是无知,但可能是两者的健康结合。
威廉·珀塞尔

2

如果程序已经使用less(如果没有使用,则将输出通过管道传递给它),则可以通过键入-S(在中less)来启用/禁用换行,这也适用于其他less选项。


0

另请注意:

journalctl -f

会向您显示所有最新信息,像任何普通人(甚至是sysadmin)一样包装,以方便阅读,复制粘贴以及其他所有内容。


-1

我输入终端,,
journalctl | more对我来说很有用,然后我使用向上或向下箭头。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.