在 Ubuntu 中,我想在终端窗口中运行命令时向上滚动并生成新输出(正在运行的命令是rspec
)。我可以向上滚动,但每次 rspec 生成一行新的控制台输出时,它都会将我带回到底部。有没有办法一直向上滚动?我在 Linux Mint/Ubuntu 12.04 LTS 上使用 terminator。
我找到了一个可能的解决方法。 终结者主页说
stty ixon
您可以打开“终端输出的 XON/XOFF 流控制。能够通过键入 ^S 暂停输出,并通过键入 ^Q 恢复输出 [...]”
不过,这并不是我完全想要的,因为无需暂停输出(并且可能担心忘记再次打开它),我想可能有一个简单的修饰键,例如 Shift-Alt 和鼠标滚轮向上滚动。有更好的解决方案吗?
答案1
虽然我有点晚了,但我还是把这个发布在这里,以便任何来这里的人都能得到解决方案。对我来说,同一问题的解决方案是:
终结者偏好设置 -> 配置文件选项卡 -> 滚动[子]选项卡 -> 取消选中“输出时滚动”选项。
这个选项的好处是,当您位于输出的最底部时,它仍会在输出上滚动,但是只要您向上滚动,它就会停止并且即使仍在生成输出内容也不会打扰您。
我希望这有帮助
答案2
tail -f log.txt | less
将更新以前进到新信息,然后您可以向上或向下移动。您还可以使用less
搜索功能等。使用管道方法,您还可以解析移动输出。
想法相同,但是没有管道 : less +F log.txt
。
(这假设您可以用这种方式处理您的内容。)
旧的 Unix 方法是在终端中按 Ctrl-S 停止,按 Ctrl-Q 重新开始输出滚动——这基本上就是 terminator 让你用 做的事情stty ixon
。
添加滚动条后,这对我来说似乎相当不错——按 Control-S,向上滚动到你想要的任何位置,然后按 Control-Q 返回。是的,你偶尔会忘记取消暂停输出。
因为我非常懒,而且我喜欢输出重定向的灵活性,所以我会使用 tail -f 和管道(假设适合这种情况)。然后我可以停止它,向上箭头并添加类似 grep 的东西,它仍然运行:
tail -f tac_plus.log | less | egrep 'peerip'
把一些cat
s 和tee
放进去,你就可以举办一场真正的派对了。