我怎样才能看到所有的bash历史?

时间:2013-02-27 16:10:07

标签: bash shell history

首先让我举一个例子。

在shell(1)中,我执行了以下命令。

$ ping google.com
PING google.com (74.125.235.164) 56(84) bytes of data.
64 bytes from nrt19s12-in-f4.1e100.net (74.125.235.164): icmp_seq=1 ttl=54 time=2.85 ms
64 bytes from nrt19s12-in-f4.1e100.net (74.125.235.164): icmp_seq=2 ttl=54 time=3.42 ms

然后,打开另一个shell(2)并查看历史记录。

$ history
 .
 .
 .
 8720  exit
 8721  clear
 8722  history

在这种情况下,shell无法查看shell(1)执行的历史记录,但我想查看每个shell中的所有bash历史记录。

所以我的问题是如何才能看到所有的bash历史?有人知道如何破解吗?

非常感谢你!

5 个答案:

答案 0 :(得分:20)

cat ~/.bash_history

也可以,但我倾向于使用

vim ~/.bash_history 

然后使用/进行搜索

答案 1 :(得分:14)

您应该查看histappend shell选项和-a标记history

  

<强> histappend

     

如果设置,当shell退出时,历史记录列表会附加到由 HISTFILE 变量的值命名的文件中,而不是覆盖文件。

     

<强> history

     

-a 将“新”历史记录行(自当前bash会话开始以来输入的历史记录行)附加到历史记录文件。

如果您将history -a放入PROMPT_COMMAND,您将获得一个始终保持最新的.bash_history文件。

答案 2 :(得分:4)

试试这个:

编辑你的.bashrc并将其附加到它的结尾:

shopt -s histappend
PROMPT_COMMAND="history -n; history -a"
unset HISTFILESIZE
HISTSIZE=2000

来源:http://subbass.blogspot.com.br/2009/10/howto-sync-bash-history-between.html

答案 3 :(得分:1)

您可以安装Advanced Shell History之类的东西,它会将每个命令记录到sqlite3数据库。它附带了一个从命令行查询数据库的工具。 https://github.com/barabo/advanced-shell-history

通过此设置,您将在所有会话中拥有统一的命令历史记录视图。您还可以获得当前工作目录(或子树)的命令历史记录,命令退出代码,命令持续时间等。

完全披露:我编写并维护了该工具。

答案 4 :(得分:0)

正如一些人所述,您需要使用shopt -s histappend。通过运行shopt并验证histappend是否为“ on”来进行检查。

要确保每个命令(跨多个并发shell)都出现在每个shell的历史记录中,请在.bashrc文件的末尾添加此命令:

# Skip if not an interactive shell
if [ -z "${PS1}" ]; then return; fi
export PROMPT_COMMAND="history -a; history -c, history -r; ${PROMPT_COMMAND}

-a:将新的历史记录行(自当前Bash会话开始以来输入的历史记录行)附加到历史记录文件

-c:清除历史记录列表

-r:读取当前历史记录文件,并将其内容附加到历史记录 list

运行source .bashrc或创建新会话,然后在几个终端窗口中分别输入注释#Tn。然后在一个终端上,输入history | tail -N以查看最后N行。您应该看到在不同终端上输入的所有评论。

将以下内容添加到/etc/profile.d/bashrc.sh可能会有所帮助,以便获得历史记录的每一行的时间戳记:

if [ -z "${PS1}" ]; then return; fi
export HISTTIMEFORMAT='%F %T '

结果如下:

 [moi@laBoheme ~]$ history | tail -4
 3292  2019-01-22 12:41:27  # T1
 3293  2019-01-22 12:41:34  # T2
 3294  2019-01-22 12:41:42  # T3
 3295  2019-01-22 12:41:50  history | tail -4