如何记录我的所有命令行活动?


2

我只有一个Heisenbug,它完全消失在我身上。我坚信几天或一周前编译程序时一定发生了有趣的事情。

但是可悲的是,我的Windows(MINGW)Shell历史记录缓冲区没有返回到那么远的地方。我该如何安排记录我的所有命令行活动,以便将来可以进行此类调查?

当然,对于Unix,您可以使用该script实用程序。但是Windows不会(IME)像对待Unix一样对待文件:即。您不能| tee logfile使用任意程序,并且希望能够正常与之交互。外壳窗口无法在灵活的pty界面中表示自己。因此,基于我的这种偏见,我没有认真地寻找脚本实用程序的端口。

“ Windows”人员将如何执行此操作?


作为记录,Unix也没有。许多交互式程序希望stdin stdout是提供的伪终端(pty)script,但管道不能提供。
grawity 2014年

哦。谢谢。我认为这不会改变我的观点。但是我实际上已经纠正了。
luser droog 2014年

Answers:


2

假设您使用的是bash,则可能需要查看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 将为您的历史添加时间戳,这在调查时非常有用。


0

在emacs中使用shell缓冲区。这样,缓冲区的大小与终端保存的行数无关。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.