如何在 Ubuntu 中从多个终端会话中查看 Bash 历史记录?

Jon*_*nas 15 bash history command-line ubuntu

可能的重复:
可以在 bash 中统一历史文件吗?

我使用 Ubuntu Server 9.10,我希望能够查看多个终端会话的 bash 历史记录。即我最近的 200 个左右的命令,即使我已经在这期间注销了。

当我使用时,history我只看到来自实际终端会话的所有命令。如何从 Bash 中查看更多命令历史记录?我应该从 Ubuntu 中的默认值更改 bash 的任何特定设置吗?

我没有~/.bash_history文件。但我有一个~/.bashrcHISTCONTROL=$HISTCONTROL${HISTCONTROL+,}ignoredupsHISTCONTROL=ignoreboth

echo $HISTFILE
/home/sanoj/.bash_history
echo $HISTSIZE
500
echo $HISTFILESIZE
500
echo $HISTCONTROL
ignoreboth
Run Code Online (Sandbox Code Playgroud)

更新:我现在正在 VirtualBox 中尝试 Ubuntu Server 10.10。如果我在没有关闭命令的情况下关闭 VirtualBox,那么下次启动时,上次会话的命令不会保存在历史文件中。

仅当我使用 shutdown 命令关闭机器时才会保存这些命令。例如关机 -P 0。

这一定是我的问题的原因。所以我必须弄清楚如何更频繁地保存命令历史。例如在每个命令之后。

Den*_*son 10

您可以使用

history -a
Run Code Online (Sandbox Code Playgroud)

立即将内存中的历史记录附加到历史文件中。除非完成此操作或退出另一个终端会话,否则一个终端会话无法看到另一个会话。

您可以使用

history 200 | less
Run Code Online (Sandbox Code Playgroud)

查看该数量的条目。

除了HISTSIZE查看 Bash 手册页中有关HISTFILESIZE.


Ben*_*ier 8

一旦您注销,历史记录将附加到文件中~/.bash_history。进去看看

默认情况下,它会记住您最近的 500 个命令。如果你想节省更多的设置变量HISTSIZE~/.bashrc

我也确实添加ignoredupsHISTCONTROL(与HISTCONTROL=$HISTCONTROL:ignoredup)。这使得重复的连续命令只保存一次。

看看man 1 bash你还可以对历史进行哪些调整。