当前会话的 bash 历史记录

当前会话的 bash 历史记录

也许我忽略了一些东西,但是有没有办法获取您正在使用的当前会话的当前 bash 历史记录

如果我跑

ssh host
$ pwd
$ ls
$ cd /tmp

我只想看看这 3 个命令,没有别的

答案1

一个稍微迂回的方式:

history -a ~/current_history

这会将当前会话未保存的 bash 历史记录保存到~/current_history,然后您可以查看。

答案2

我有一个问题,我想history将当前写入文件但仍然希望将条目记录在主 bash 中history

我通过附加解决了这个问题文件cat

history -a current-history
cat current-history >> .bash_history

答案3

history -a与文件名一起使用。这可以是一个设备文件,例如/dev/stdout.

然后你可以随心所欲地管道它。例如,要查看当前会话历史记录,less您可以

history -a /dev/stdout | less

答案4

用于comp将整个历史记录(包括当前 Bash 会话)与已保存的历史记录进行比较,.bash_history并仅打印当前会话特有的那些行——这应该仅显示自启动当前 Bash shell 以来执行的那些命令

comm -23 <( history | cut -c 8- ) ~/.bash_history

编辑:正如 @Wildcard 指出的,此命令不适用于所有发行版comm。我在 Mac 操作系统上对此进行了测试。

使用以下相同想法的变体diff

diff <( history | cut -c 8- ) ~/.bash_history | sed -n 's/^< //pg'

相关内容