Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/search/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
无法像使用CTRL-r一样转发搜索Bash历史记录_Bash_Search - Fatal编程技术网

无法像使用CTRL-r一样转发搜索Bash历史记录

无法像使用CTRL-r一样转发搜索Bash历史记录,bash,search,Bash,Search,我试图像使用CTRL-r一样搜索我的bash历史记录,但要向前搜索 当我太频繁地按CTRL-r键一次,却无法再次找到上一个命令时,这对我来说是一种痛苦 如何像反向搜索一样向前搜索Bash历史?也可以向前搜索。从bash信息手册中,“: 要在历史记录中向后搜索特定字符串,请键入C-r。 键入C-s可向前搜索历史记录 然而,Ctrl-S的问题是有时会与XON/XOFF流控制冲突(例如在Konsole中)。不过,搜索是一个readline功能,您应该能够将其绑定到其他一些键。更新:更简单更好的方法是通

我试图像使用CTRL-r一样搜索我的bash历史记录,但要向前搜索

当我太频繁地按CTRL-r键一次,却无法再次找到上一个命令时,这对我来说是一种痛苦


如何像反向搜索一样向前搜索Bash历史?

也可以向前搜索。从bash信息手册中,“:

要在历史记录中向后搜索特定字符串,请键入
C-r
。 键入
C-s
可向前搜索历史记录

然而,Ctrl-S的问题是有时会与XON/XOFF流控制冲突(例如在Konsole中)。不过,搜索是一个readline功能,您应该能够将其绑定到其他一些键。更新:更简单更好的方法是通过运行

stty -ixon

我通常在终端中按ESC键,然后按>。它至少会重置,然后您可以尝试不太频繁地单击CTRL+R。

IMHO使用
pgup
pgdown
启用的最佳技巧。只要把它放在你的
~/.inputrc

"\e[5~": history-search-forward
"\e[6~": history-search-backward
注销/登录,键入第一个字母,然后键入
pgup
pgdown
以搜索整个历史记录

ctrl-R
搜索包含单词的所有行,而历史搜索以单词开头的前向搜索行

您可能希望尝试使用基于度量的排序(可选)对Bash历史进行“建议框式”过滤,即在前向和后向上更高效、更快:


可以轻松地按Ctrl-r和/或Ctrl-s键,另一种解决方案是使用:


history | grep

这真是太棒了,但我将stty-ixon添加到了我的.profile中,它似乎对新选项卡不起作用。你有什么想法可以让它工作吗?我希望默认情况下禁用XON/XOFF。如果其他人也有与我相同的问题-如果您将此添加到.profile,则不会生效。只有当您将其添加到.bash_配置文件时,魔法才会发生!谢谢你给了我一个很好的建议-这已经让我发疯好几年了。@JohnGallagher需要注意的是
.bash\u profile
.profile
仅用于登录shell。我会把它放在
.bashrc
(我来自
.profile
)中。
[$-==*I*]&&stty-ixon
可以用来避免问题,以防您使用PuTTY并且不能/不想在您连接的每台机器上维护
。bash\u profile
,你也可以在
/etc/inputrc
(例如在Ubuntu中)中取消对这两行的注释。我更喜欢将其绑定到上下箭头:“\e[a”:历史向后搜索和“\e[B”:历史向前搜索如果这在bash中没有效果呢?s/单击/按/另外,你需要按escape两次(第一次从向后搜索中逃脱)。我爱上了。在Ubuntu上安装的快速说明:
sudo add apt repository ppa:ultradvorka/ppa;sudo apt get update;sudo apt get install hh;hh--show configuration>~/.bashrc;