终端*输出*历史记录?

终端*输出*历史记录?

我大量使用这些功能来浏览终端中的命令历史记录;我想知道是否还有某种方法可以浏览命令输出历史记录?(除了保持较大的历史记录大小并依靠 pgup 键)

我不能只是“重新运行命令”,因为在我的特定情况下,命令的来源发生了变化;我经常需要回顾以前更改的输出。

欢迎黑客攻击。

谢谢!

2010年编辑:

我把功劳归于“tee”;在所有将您的会话记录到其他地方的方法中,它的适用范围最广(即它是 gnu coreutils 的一部分,并且不需要特定的 shell 或实用程序即可工作)。它并不是我真正想要的,但我意识到这样的东西并不存在。

我能想到的最接近的方法是使用类似screen(byobu/tmux) 的东西来记录到文件,然后编写 (和键绑定) 自定义命令来翻页/搜索该日志文件 (想想less按提示而不是屏幕分页)。谢谢大家。

2012年编辑:

@Dustin Kirkland 的答案显然是最好的,至少一般来说;终端的回滚缓冲区是浏览命令输出历史记录的最不具侵入性的方式。Byobu 似乎保存了大量默认的历史记录行(10K;tmux 有 2K,GNU screen 有 100),并且它允许正则表达式搜索(粗略一看就会发现 GNU screen 没有回滚搜索,而 tmux 只有纯文本搜索)。

答案1

你提到使用屏风...

这当然是一种做法。Byobu 为每个窗口或每个分割(窗格)存储 10K 行回滚历史记录。

您可以通过按Alt- PageUpAlt-PageDown或轻松进入回滚模式F7。进入回滚模式后,您可以使用类似 vi 的命令向前和向后搜索。使用/regex向前搜索,?regex使用 向后搜索。

答案2

您可以使用tee将命令输出同时发送到文件和终端。

答案3

您可以使用script将终端会话记录到文件中。如果您始终希望这样做,请将合适的script命令添加到您的.login.

$ man script

答案4

bash 会保留您所做操作的历史记录,但不会保留命令的输出。它可能非常大,而且通常没什么用。

相关内容