如何防止长字符串在终端中被截断?例如,如果我跑
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 脚本中。