我喜欢将 bash 中的每个历史记录保存到一种日志文件中,并为此创建了一个额外的目录 ~/lib/hists/。
在 shell 中编写这样的日志文件很容易:
history -w /home/stefan/lib/hists/bash-hist-$(date +%F_%T_%N)
现在,如果我关闭,所有关闭的 xterm 都将写入它们的日志文件,这就是为什么我在文件名中包含 nanotime 以避免冲突。
所以我将该命令放入~/.bash_logout
不幸的是,关闭 xterm 并没有生成这样的日志文件。我想,也许是因为我关上了窗户。所以在 bash 中启动 bash:
bash
ls
exit
但同样,没有记录历史。
大多数时候我有 4 到 6 个打开的终端,但只有一个我不知道的历史文件,哪些命令在那里结束 - 从第一个打开的 shell,从最后一个关闭的 shell?在工作时,历史不会干扰,所以我猜它只绑定到一个 shell 实例。
我对解释很感兴趣,为什么我的方法失败了,我该如何解决它,包括非常不同的方法。
.bash_logout
只有当 shell 是登录 shell 时,Bash 才会执行命令。有关更多详细信息,请参阅superuser.com 上的此答案,以及您尝试解决的问题的替代解决方案。