我想查看我的文件的内容.bash_history
,但不知道如何通过命令行来实现。
答案1
如果您想访问实际文件本身,只需使用您最喜欢的文本编辑器(我使用emacs
但您可以使用pluma
或gedit
或vim
其他):
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 + r
keys 然后开始输入一些命令内容,它会搜索并填写。找到后,您可以输入 Enter 重复该命令,或者按下 键[tab]
将其复制到命令行以先编辑该命令。
当然,最后两个选项在 bash shell 中有效。我不确定这些功能是否在其他 shell 中有效。但由于 bash 是 Ubuntu 默认 shell,您应该在那里找到它们。
答案4
你可能想尝试“建议框”之类的历史记录https://github.com/dvorka/hstr- 它读取 Bash 历史记录并允许快速导航。