有没有办法我可以在命令开头键入内容,并在我的匹配项之间循环历史与一些bash快捷方式?
# mysq(some shortcut key)
给我:
# mysqldump --add-drop-table -e -q -n -C -u
(some shortcut key)
# mysql -u ben.dauphinee -p
#1 楼
按Ctrl + R将打开反向历史记录搜索。现在开始键入命令,这将给出第一个匹配项。再次(再次)按Ctrl + R,您可以循环浏览历史记录。
>请提供:
mysq(Ctrl+R)
再次按Ctrl + R:
mysqldump --add-drop-table -e -q -n -C -u
评论
谢谢。同样,Esc将选择的命令放在命令行中而不执行,而Enter将运行选择的命令。
– Ben Dauphinee
2011年1月3日在16:08
我发现CTRL + E比ESC更好,因为逃脱很难达到,但是我已经按下CTRL + R,所以E就在那。这也将光标定位在该行的末尾,这在我想更改某些常见的情况(例如文件名)时非常方便。
– Sorpigal
2011年1月3日17:41
可悲的是,它在Cygwin上不起作用
– ATorras
18年2月19日在8:54
至少在Mac上,似乎mysq(CTRL + R)(CTRL + R)不会循环浏览以“ mysq”开头的命令。您需要执行(CTRL + R)mysq(CTRL + R)代替
– BlueRaja-Danny Pflughoeft
18年5月9日在13:24
@ BlueRaja-DannyPflughoeft我在Windows 10上安装了Bash,这也是它在那里工作的方式。花了我一点时间弄清楚它是如何工作的。
–真是令人难以置信
19-10-31在6:16
#2 楼
为了进一步解释Gilles所说的内容,我在.inputrc
中添加了以下内容,将向上/向下箭头键绑定到history-search-backward
和history-search-forward
: ,然后按向上/向下箭头键在历史记录中搜索以您键入的命令开头的命令。要在
.bashrc
而不是.inputrc
中执行此操作,可以使用:# Key bindings, up/down arrow searches through history
"\e[A": history-search-backward
"\e[B": history-search-forward
"\eOA": history-search-backward
"\eOB": history-search-forward
评论
这些绑定属于〜/ .inputrc ...感谢您支持我的懒惰。
–马丁·齐特勒
15年5月20日在17:03
值得注意的是,“ \ e”至关重要,至少对于bash初学者而言。仅输入Ctrl-V来获取命令的击键并不能说明全部内容。例如,键入Ctrl-V Meta-P(即Alt-P)将返回^ [p-要获得所需的行为,请将“ ^ [”替换为“ \ e”。
– MrsMas
15年6月2日在18:04
同意@syslogic-将行放在.inputrc中,并删除绑定和单引号。
– MrsMas
15年6月2日在18:04
参见superuser.com/questions/241187/how-do-i-reload-inputrc。您无法获取文件。
– raychi
16-2-22在23:47
要使它在当前的shell中起作用,请运行bind -f〜/ .inputrc
–罗马
18-10-17在21:05
#3 楼
您也可以按PAGEUP
按钮自动完成命令。它基本上搜索bash_history
文件。评论
您必须取消注释/ etc / inputrc中的两行或将这两行添加到$ HOME / .inputrc文件中:“ \ e [5〜”:历史搜索向后“ \ e [6〜”:历史搜索-前锋
– Garlix
18-10-18在13:46
#4 楼
您可以使用readline命令history-search-backward
和history-search-forward
在以您已经键入的前缀开头的命令行之间导航。这两个命令均未绑定到默认配置中的键。Zsh(zle)具有类似的命令
history-beginning-search-backward
和history-beginning-search-forward
,默认情况下也不绑定到键。还有history-search-backward
和history-search-forward
,它们使用当前命令的第一个单词作为搜索前缀,而不考虑光标的位置。#5 楼
如果要很好地了解非常相似的命令,可以使用以下列表:history|grep KEYSTRING
然后用鼠标的中键复制并粘贴。
Rgds-乔
评论
旁注:对于不带桌面的tty,有' Alt + Tab '。