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

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

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

journalctl -xn

有很多文字我无法阅读。我愿意使用其他程序/工具。

答案1

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

答案2

我也这样做:

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环境对我来说似乎有点傲慢,但是嘿,这有效......

答案3

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

答案4

$ SYSTEMD_PAGER="less +-S" journalctl

+在启动时执行命令并-S禁用斩波。

您还可以为会话设置此值或保存在 rc/profile 脚本中。

相关内容