我刚刚遇到了一个 Heisenbug,它完全消失了。我确信几天或一周前我编译程序时一定发生了一些有趣的事情。
但遗憾的是,我的 Windows (MINGW) shell 历史缓冲区无法回溯到那么远。我该如何安排记录我的所有命令行活动,以便将来可以进行此类调查?
当然,在 Unix 上,您可以使用该script
实用程序。但 Windows (IME) 不会像 Unix 那样小心地对待文件:即。您不能shell-windows 并不在灵活的 pty 接口中表现自己。因此,基于我的这个偏见,我并没有认真寻找该脚本实用程序的移植版本。| tee logfile
任意程序并期望与其正常交互。
“Windows” 用户如何做到这一点?
答案1
如果你正在使用狂欢,你可能想看看bash 的 HISTORY 参数提高命令行历史记录的大小:
HISTSIZE
更改可通过的最大命令数history
命令HISTFILESIZE
改变你的最大尺寸HISTFILE
,通常.bash_history。如果没有设置,则根本HISTFILE
不会被截断,因此您将拥有整个生命周期的历史记录。- 该
histappend
选项将新的历史记录附加到您的历史记录文件中,而不是覆盖它。
例子.bashrc:
# append to the history file, don't overwrite it
shopt -s histappend
# for setting history length see HISTSIZE and HISTFILESIZE in bash(1)
HISTSIZE=1000
HISTFILESIZE=2000
HISTTIMEFORMAT="%Y-%m-%dT%H:%M:%S%z "
HISTTIMEFORMAT
将为您的历史记录添加时间戳,这在调查时非常有用。
答案2
在 emacs 中使用 shell 缓冲区。缓冲区的大小与终端保存的行数无关。