我想查看.bash_history
文件的内容,但不知道如何通过命令行到达那里。
/home/username/.bash_history
吗?
.bash_history
仅当终端关闭时才添加。
我想查看.bash_history
文件的内容,但不知道如何通过命令行到达那里。
/home/username/.bash_history
吗?
.bash_history
仅当终端关闭时才添加。
Answers:
如果您要访问的实际文件本身,只用你喜欢的文本编辑器(我用的emacs
,但你可以使用pluma
的gedit
或者vim
或其他):
emacs ~/.bash_history
这是您的历史记录文件的默认位置。如果您在此处找不到任何内容,则可能已更改了历史记录文件的名称。这存储在$HISTFILE
变量中,因此将其打印出来以检查其当前值:
echo $HISTFILE
如果您只是想查看历史记录而不是文件,则可以history
按照建议的@ minerz029 运行。不带选项的history
命令仅显示您的内容,$HISTFILE
后跟在当前shell中执行但尚未写入该文件的命令(带有行号)。
如果你确实需要的输出.bash_history
文件,替换history
用
cat ~/.bash_history
在下面的所有命令。
如果您实际上想要前面没有数字的命令,请使用此命令代替history
:
history | cut -d' ' -f 4-
否则,不会有任何区别(除非您使用其他Shell)。
您可以使用
history | tail -n 15
仅获得历史记录的最后15行,最后执行的行最后打印(在底部)。
或者,使用
history | grep "apt-get" | tail -n 15
以获得包含apt-get
最后执行的最后15条命令(最后显示)。您可以替换apt-get
为要搜索的任何命令(或命令参数)(可以是正则表达式)。
您可以使用
history | tac | less
滚动浏览从顶部的最新命令开始执行的所有命令。按q退出。
同样,使用
history | grep "apt-get" | tac | less
滚动浏览所有以“ apt-get
” 执行的命令(包括参数),从顶部的最新命令开始。按q退出。
除了minerz029的出色答案。
重申一下-“历史记录”命令会打印历史记录及其旁边的数字。
您可以将历史记录的输出传递给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
然后按Enter键以在历史记录输出中的473旁边重复该命令。
您还可以通过键入ctrl + r
键在命令历史记录中向后交互式搜索,然后开始键入命令的某些内容,它将搜索并填写该命令。找到它后,您可以键入Enter以重复该命令,或按键将[tab]
其复制到命令行以首先编辑命令。
当然,后两个选项可以在bash shell中使用。我不确定这些功能是否可以在其他外壳中使用。但是由于bash是Ubuntu的默认shell,因此您应该在那找到它们。
您可能想尝试类似“建议框”的历史记录https://github.com/dvorka/hstr-它读取Bash历史记录并允许快速导航。
history | less