是否有“watch”的分页版本?

是否有“watch”的分页版本?

在 UNIX shell 下,如何才能获得与命令类似的效果watch,但使用分页,以便如果输出占用多个屏幕,我可以在输出中滚动?

换句话说,我想要一个能够watch实现less的程序cat

举个例子,假设我想观察qstat,我可以使用

watch qstat

观察 qstat 的输出,但这只能显示第一个屏幕。

使用 的分页版本watch,我将能够在输出中移动,因为它仍会通过 不断更新watch。目前有没有办法使用现有实用程序做到这一点?

答案1

不要修改‘watch’命令,而是使用屏幕!

例如,假设您需要能够看到 300 行高和 100 个字符宽,并在其周围移动。启动屏幕后,强制大小如下:

C-a :height -w 300
C-a :width -w 100

现在启动你的监视命令。然后你可以使用C-a <ESC>它来翻阅显示内容。

不幸的是,在复制模式下,显示不会刷新。但是,如果您想调整正在查看的窗口部分,最简单的方法可能是重新运行高度/宽度命令,因为默认情况下,您的终端会显示虚拟窗口的右下角。

答案2

您可以尝试以下操作:

$ while vmstat; do sleep 1; done | less

替换vmstatqstat并调整以sleep满足您的需要。

答案3

多尾:http://www.vanheusden.com/multitail/

例子:

 vmstat 1 |multitail -j

按“b”键并按页面/箭头向上/向下滚动。

答案4

我实现了一个简单的python脚本来满足这个请求,名为“watchall”

获取方式: pip 安装 watchall

用 watchall 替换 watch 并享受可滚动屏幕。现在它仅支持 -n 和 -d 标志。

相关内容