我在 Windows 10 的 WSL 中使用 xv6。运行make && make qemu-nox
并立即退出 qemu 后,我需要检查 make 的输出。但 make 输出的大多数行都被删除了;只有输出突发末尾的几行被保留。我已将“命令提示符”属性对话框中的缓冲区大小从 50 更改为 500,但同样的问题仍然存在。有没有可行的方法可以增加命令窗口的输出缓冲区,以便我可以make && make qemu-nox
从头开始检查输出?或者,如果输出确实被 qemu 或其他程序删除,我该如何防止这种删除?非常感谢。
答案1
特性->选项->命令历史->缓冲区大小是 Windows 控制台将记住的先前命令行的数量。要更改回滚缓冲区,您需要特性->布局->屏幕缓冲区大小->高度。
由于这个默认值已经是一个相当大的数字(在我的系统上是 9001),所以更有可能是构建中的某些东西正在调用该clear
命令(或将其等效的转义序列写入终端)。
作为可能的解决方法,请考虑:
使用tmux
也许这有点过分,但我的常规工作流程是使用tmux
。它在某些发行版中默认安装,但如果没有,也很容易安装。据我所知,它的回滚缓冲区不会用命令clear
(或其等效转义序列)清除。
运行它并使用其回滚功能:
- 默认回滚缓冲区为 2000 行。如果您确实需要更多,请使用
~/.tmux.conf
以下行进行更改:set -g history-limit 10000
- 跑步
tmux
- 运行构建
- 要进入可以向后滚动的“复制模式”,请按Ctrl+ b(
tmux
“前缀”和弦),然后按[(我希望我的设置正确 - 我的设置略有不同)。 - 然后Pg-Up根据需要
- q将退出复印模式(或Ctrl+ C)
管道至less
对于可能更快的解决方案,如果您选择不使用tmux
,(make && make qemu-nox) | less
应该允许您将完整的构建捕获到可滚动less
命令中。
重定向到文件
(make && make qemu-nox) &> buildlog.txt
&>
也需要将 stderr 重定向到该文件。
重定向到文件,同时仍在屏幕上显示输出
((make && make qemu-nox) 2>&1) | tee buildlog.txt