我想获取 Linux 终端中会话命令历史记录的位置。我不是在寻找 .bash_history,因为它仅在会话关闭时更新。我希望命令在会话中运行而不实际关闭会话。
基本上,我想以编程方式获取这些命令并处理它们。即使有一些工具可以通过编程方式调用来执行此操作,我也可以使用它。
答案1
将这些行添加到您的 中~/.bashrc
,任何会话中的每个命令都会写入~/.bash_history
.
shopt -s histappend
export PROMPT_COMMAND='history -a'
... 还可以避免会话互相覆盖历史记录。
答案2
特别是对于 Bash,您应该能够使用和内置fc
函数history
访问当前 shell 的历史列表和/或操作历史文件。请注意,这些根本不是一回事,尤其是因为您可以在一个会话中拥有多个并发会话和多个 shell,但每个用户只有一个历史文件。当然,您想要哪个特定命令fc
或history
命令取决于您到底想要做什么。