![如何获取命令执行过程中溢出的终端文本?](https://linux22.com/image/859960/%E5%A6%82%E4%BD%95%E8%8E%B7%E5%8F%96%E5%91%BD%E4%BB%A4%E6%89%A7%E8%A1%8C%E8%BF%87%E7%A8%8B%E4%B8%AD%E6%BA%A2%E5%87%BA%E7%9A%84%E7%BB%88%E7%AB%AF%E6%96%87%E6%9C%AC%EF%BC%9F.png)
有些命令在终端中输出的文本非常大。有时在命令执行过程中,有些文本行会超出终端。如何获取这些文本?
更新: 我指的是 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
尽管管道解决方案(使用more
,less
和tee
)会更简洁,但您也可以让终端在其窗口中保留更多行输出(以便您可以向上滚动到它)。
在 Ubuntu 12.04 中,常用的终端是gnome-terminal
。打开一个终端,然后进入首选项窗口 (编辑 > 首选项)。 在里面滚动选项卡上,你会看到回滚值,默认情况下应设置为 512 行。此值表示终端将保留可供您向上滚动的行数。您可以增加此值,或检查无限盒子。
还要记住,终端保存的行越多,所需的内存就越大。
答案4
在“干净的情况下”(没有像 curses & 那样的术语操作),您还可以尝试 Shift-PgUp 是否有任何作用。这将允许滚动到一定数量,通常是一百行左右。要覆盖更多范围,请使用其他人指出的方法。