如何获取命令执行过程中溢出的终端文本?

如何获取命令执行过程中溢出的终端文本?

有些命令在终端中输出的文本非常大。有时在命令执行过程中,有些文本行会超出终端。如何获取这些文本?

更新: 我指的是 Ubuntu(12.04) 自带的终端。

答案1

当在“less”中输入命令时,您可以使用向上/向下箭头滚动,例如:ls -l|less假设您正在谈论标准 bash 终端,您可能正在谈论它。

答案2

还值得一提的是,您可以使用tee将输出发送到文件和 STDOUT:

$ ls -al 2>&1 | tee currDir.txt

这将列出当前目录中的文件,同时将它们写入currDir.txt。请注意,添加2>&1还将允许它捕获发送到 STDERR 的任何内容。

答案3

尽管管道解决方案(使用morelesstee)会更简洁,但您也可以让终端在其窗口中保留更多行输出(以便您可以向上滚动到它)。

在 Ubuntu 12.04 中,常用的终端是gnome-terminal。打开一个终端,然后进入首选项窗口 (编辑 > 首选项)。 在里面滚动选项卡上,你会看到回滚值,默认情况下应设置为 512 行。此值表示终端将保留可供您向上滚动的行数。您可以增加此值,或检查无限盒子。

还要记住,终端保存的行越多,所需的内存就越大。

答案4

在“干净的情况下”(没有像 curses & 那样的术语操作),您还可以尝试 Shift-PgUp 是否有任何作用。这将允许滚动到一定数量,通常是一百行左右。要覆盖更多范围,请使用其他人指出的方法。

相关内容