我在终端中运行了一些命令,它们会输出它们所做的一切,这很好,但我不需要整个窗口都充满数千行输入。有没有办法只显示最后 x 行输出,而删除其余行?
答案1
您可以使用 tail 命令。它将仅列出用户指定的文件的最后几行。如果需要,它还将实时列出最后几行。tail -n 5 将打印最后 5 行。只需执行 man tail 即可获取其他选项。
答案2
虽然不知道您看到哪些命令的输出很多,但我可以说,您可以使用 tail 命令限制终端上输出的行数,方法是使用“管道”将第一个命令的输出发送到第二个命令。例如:
ls | tail -n 5
它不将 ls 命令的输出发送到屏幕,而是将其发送(或通过管道)到 tail 命令。此处的 tail 命令将打印 ls 输出的最后 5 行,因为指定了“-n 5”。
答案3
控制台输出只是逐行写入输出流(标准输出或标准错误)的行。控制台窗口和终端应用程序只显示这些行,并向上滚动前一行。它们无法删除任何已打印的行。您需要:
- 具有内置功能的控制台/终端应用程序,可以省略除最后一个之外的所有内容n在收到新线时重新绘制线;这也许是可行的,但我不知道如何做。
- 可以执行此操作的附加应用程序从控制台启动,作为应用程序的包装器;
screen
可能tmux
可以做到这一点,但我不知道如何做。 可以执行此操作的应用程序,您可以通过管道将应用程序的控制台输出传输到此处;
multitail
例如,它适合这里:find | env LINES=10 multitail -j
将显示的输出
find
,但每次显示不会超过 10 行。
您尚未说明您所使用的操作系统,但multitail
可用于 Linux,例如作为 Ubuntu 软件包。