如何通过命令行查看`.bash_history`文件?

如何通过命令行查看`.bash_history`文件?

我想查看我的文件的内容.bash_history,但不知道如何通过命令行来实现。

答案1

如果您想访问实际文件本身,只需使用您最喜欢的文本编辑器(我使用emacs但您可以使用plumageditvim其他):

emacs ~/.bash_history

这是历史文件的默认位置。如果在那里找不到任何内容,则可能是您更改了历史文件的名称。此名称存储在变量中$HISTFILE,因此请将其打印出来以检查其当前值:

echo $HISTFILE

如果您只想查看历史记录而不是文件,则可以history按照@minerz029 建议的方式运行。命令history没有任何选项只会打印你的内容,$HISTFILE后面跟着当前 shell 中执行的尚未写入该文件的命令,并带有行号。

答案2

如果你真的需要文件的输出.bash_history,在下面的所有命令中替换history为。
cat ~/.bash_history

如果您确实想要前面没有数字的命令,请使用此命令代替history

history | cut -d' ' -f 4-

否则,不会有任何区别(除非你使用不同的 shell)。


最后 15 条命令

您可以使用

history | tail -n 15

只获取历史记录的最后 15 行,并将最后执行的内容打印在最后(在底部)。


搜索命令

或者,使用

history | grep "apt-get" | tail -n 15

获取最后 15 条命令,其中包含apt-get最后执行的命令(在底部)。您可以apt-get用任何要搜索的命令(或命令参数)替换(可以是正则表达式)。


滚动浏览历史

您可以使用

history | tac | less

滚动浏览全部执行的命令从最新命令开始,排在最上面。按q退出。

同样地,使用

history | grep "apt-get" | tac | less

滚动浏览全部执行带有“ ”的命令apt-get(包括参数),从最新命令开始。按q退出。

答案3

除了minerz029的优秀答案之外。

重申一下——“history”命令会打印历史记录以及旁边的数字。

您可以将历史记录的输出导入到 grep、less 等中。

历史输出还会在输出左侧显示一个数字。例如

  469  free
  470  ps -fA
  471  ps -fA | grep xend
  472  free
  473  sudo vi /etc/xen/xend-config.sxp 
  474  cat /etc/default/grub 

有了这个号码您就可以重新运行该命令。

例如要重新运行 473,我会在终端中输入

 admin@xen1~$ !473

然后按回车键重复历史输出中473后面的命令。

你也可以交互式向后搜索在命令历史记录中输入ctrl + rkeys 然后开始输入一些命令内容,它会搜索并填写。找到后,您可以输入 Enter 重复该命令,或者按下 键[tab]将其复制到命令行以先编辑该命令。

当然,最后两个选项在 bash shell 中有效。我不确定这些功能是否在其他 shell 中有效。但由于 bash 是 Ubuntu 默认 shell,您应该在那里找到它们。

答案4

在此处输入图片描述

你可能想尝试“建议框”之类的历史记录https://github.com/dvorka/hstr- 它读取 Bash 历史记录并允许快速导航。

相关内容