我大量使用这些功能来浏览终端中的命令历史记录;我想知道是否还有某种方法可以浏览命令输出历史记录?(除了保持较大的历史记录大小并依靠 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- PageUp、Alt-PageDown或轻松进入回滚模式F7。进入回滚模式后,您可以使用类似 vi 的命令向前和向后搜索。使用/regex
向前搜索,?regex
使用 向后搜索。
答案2
您可以使用tee
将命令输出同时发送到文件和终端。
答案3
您可以使用script
将终端会话记录到文件中。如果您始终希望这样做,请将合适的script
命令添加到您的.login
.
$ man script
答案4
bash 会保留您所做操作的历史记录,但不会保留命令的输出。它可能非常大,而且通常没什么用。