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

P.B*_*key 99 terminal systemd

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

journalctl -xn

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

Doo*_*nob 111

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.
Run Code Online (Sandbox Code Playgroud)

如果您不想经常使用左右箭头键,只需将其直接通过管道传输到less

$ journalctl -xn | less
Run Code Online (Sandbox Code Playgroud)

这将换行对您的终端来说太长的行( 的默认行为less,它journalctl会覆盖)。

或者,当然,如果您不介意可能不得不使用终端的回滚,您可以根本不使用寻呼机:

$ journalctl -xn --no-pager
Run Code Online (Sandbox Code Playgroud)

  • 这真的很令人沮丧。如果 pager 设置为 `less`,并且 `LESS` 不包含 `-S`,那么 journalctl 不应该将 `-S` 应用于 `less` 的调用!!也就是说,设置 PAGER=less 和 LESS=$x(其中 $x 是任何不包含 S 的字符串)应该会提供所需的行为。 (6认同)
  • 也就是说,journalctl 应该尊重 LESS,用户不应该也设置 SYSTEMD_LESS!(抱歉,门把手,这有点咆哮,可能不属于对您的回答的评论) (3认同)
  • 对于彩色输出:`SYSTEMD_PAGER="less -r" journalctl -xn` (2认同)
  • @PabloA 前缀 `SYSTEMD_COLORS=true` 有帮助。 (2认同)

Pet*_*rch 24

我也这样做:

journalctl -xn | less
Run Code Online (Sandbox Code Playgroud)

但是你也可以设置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
Run Code Online (Sandbox Code Playgroud)

我从:[systemd-devel] [PATCH] pager: wrap long lines by default

将它设置在您的 .bashrc 中并完成它!:-)

systemd需要less特别设置,不仅要遵守较少的默认值,而且LESS环境对我来说似乎有点傲慢,但是,嘿,这行得通......

  • 很好的解决方案,我还在`/etc/sudoers`中添加了`Defaults env_keep += "LESS SYSTEMD_LESS"`。这是因为当我不小心将“sudo”放在“systemctl status”前面时。 (2认同)
  • 嗯。https://lists.freedesktop.org/archives/systemd-devel/2014-February/016814.html (2认同)

Tho*_*ker 7

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


小智 5

另请注意:

journalctl -f
Run Code Online (Sandbox Code Playgroud)

将向您展示所有最新内容,就像任何普通人(甚至系统管理员)希望轻松阅读、复制粘贴和其他一切一样。