Answers:
我对上述内容做了一些细微的改动,对我来说效果很好(如果您指的是bash历史记录
在主文件夹中,创建一个名为
.inputrc
里面去了
"\e[5~": history-search-backward
"\e[6~": history-search-forward
注意:以上内容在14.04中似乎不再起作用,因此它具有相同的作用-
"\e[A":history-search-backward
"\e[B":history-search-forward
然后键入任何我希望的上一个命令,然后使用向上翻页/页面dn按钮搜索历史记录,始终从向上翻页开始
这是使用经典命令的另一种方法(更可能在发行版中使用)。命令历史记录存储在.bash_history
主目录中的文件中,因此您可以执行以下操作:
grep "ssh" ~/.bash_history
-i
如果您需要不区分大小写的搜索,请不要忘记该标志。
history | grep ssh
将仅显示临时会话的ssh,因此我将寻求此答案。
我在Internet上的某处发现了以下功能,并用到了很大的效果。把它放在你的~/.bashrc
:
hgrep () {
history | egrep --color=auto --recursive "$@" | egrep --color=auto --recursive -v "hgrep $@"
}
现在重新加载您的shell :exec bash
。现在,您有了一个新命令,可以像这样使用:
hgrep ssh
它将显示您历史记录中匹配命令的列表。要运行命令,请键入!
命令号。这是一个例子:
~:$ hgrep scp
207 tn scp foreign-teachers __HOST__:unity.log __HOST__:compiz.log .
421 tn scp scott-laptop __HOST__:Scott\ Severance.asc .
422 tn scp scott-laptop __HOST__:'Scott\ Severance.asc' .
468 tn scott-desktop scp -r Backgrounds/* __HOST__:Pictures/Backgrounds
469 tn scott-laptop scp -r Backgrounds/* __HOST__:Pictures/Backgrounds
470 scp -r Backgrounds/* 192.168.1.2:Pictures/Backgrounds
~:$ !207
与Ctrl+ 相比,我更喜欢这种方法,R因为它可以进行更灵活的搜索,并且可以一次看到多个结果。
历史是好的,但有局限性-我更喜欢设置bash环境,以便除了运行它们的目录之外,还记录我曾经运行过的所有命令。然后,我运行一个命令以列出所有命令我已经在当前目录中运行,可以通过管道将其传递给grep等-称为“菜”,请参见:
https://github.com/wolfwoolford/dish
如果您想追逐目标,只需在.bashrc(https://github.com/wolfwoolford/dish/blob/master/dishrc)中提供即可。
您还可以免费获得一个非常有用的命令,称为“ dishg”(即盘全局),它可以打印出曾经运行的每个命令,而与目录无关。显然,此选项仅在与grep和tail等一起使用时才有用...
我已经使用了多年,这实际上是我安装新盒子时首先安装的东西。它会将您运行的命令记录到隐藏目录(〜/ .dish)中的文本文件中。.我从来没有磁盘空间问题...
想要将此内容写为@ssmy的注释,但无法获得注释中的格式以配合使用。
搜索历史记录后,history | grep ssh
您可以通过键入带有感叹号的数字来执行所需的命令,例如!42
。
例:
$历史记录| grep ssh 5 ssh me@someserver.net 13 ssh me@someotherserver.net 42 ssh me@thisone.com $!42