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

gip*_*any 20 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
Run Code Online (Sandbox Code Playgroud)

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

$ history
 .
 .
 .
 8720  exit
 8721  clear
 8722  history
Run Code Online (Sandbox Code Playgroud)

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

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

非常感谢你提前!

etu*_*usm 24

cat ~/.bash_history
Run Code Online (Sandbox Code Playgroud)

也会工作,虽然我倾向于使用

vim ~/.bash_history 
Run Code Online (Sandbox Code Playgroud)

然后/用来搜索

  • 如果你安装了 zsh,可能是 ~/.zsh_history (2认同)

Car*_*rum 16

你应该查看histappendshell选项和-a标志history:

histappend

如果设置,则HISTFILE当shell退出时,历史列表将附加到由变量值指定的文件中,而不是覆盖文件.

history

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

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


car*_*son 6

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

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

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


小智 5

尝试这个:

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

shopt -s histappend
PROMPT_COMMAND="history -n; history -a"
unset HISTFILESIZE
HISTSIZE=2000
Run Code Online (Sandbox Code Playgroud)

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