Ben*_*nee 106 bash command-history autocomplete
所以,我看过历史和Ctrl+ R,但它们并不是我认为我所知道的。有没有办法可以在命令的开头输入,然后使用一些 bash 快捷方式循环浏览历史记录中的匹配项?
# mysq(some shortcut key)
Run Code Online (Sandbox Code Playgroud)
给我:
# mysqldump --add-drop-table -e -q -n -C -u
(some shortcut key)
# mysql -u ben.dauphinee -p
Run Code Online (Sandbox Code Playgroud)
wag*_*wag 109
按Ctrl+R将打开反向历史搜索。现在开始输入您的命令,这将给出第一个匹配项。通过再次(再一次)按Ctrl+ R,您可以循环浏览历史记录。
mysq(Ctrl+R)
Run Code Online (Sandbox Code Playgroud)
会给:
mysqldump --add-drop-table -e -q -n -C -u
Run Code Online (Sandbox Code Playgroud)
Ctrl+R再次:
mysql -u ben.dauphinee -p
Run Code Online (Sandbox Code Playgroud)
ray*_*chi 88
为了扩展 Gilles 所说的内容,我.inputrc将向上/向下箭头键绑定到history-search-backward和 中有以下内容history-search-forward:
# 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
Run Code Online (Sandbox Code Playgroud)
只需输入一些内容(可选),然后按向上/向下箭头键即可在历史记录中搜索以您输入的内容开头的命令。
要在.bashrc而不是 中执行此操作.inputrc,您可以使用:
bind '"\e[A": history-search-backward'
Run Code Online (Sandbox Code Playgroud)
您可以使用 readline 命令history-search-backward并history-search-forward在以您已键入的前缀开头的命令行之间导航。这些命令都没有绑定到默认配置中的键。
Zsh (zle) 有类似的命令history-beginning-search-backward和history-beginning-search-forward,默认情况下也不绑定到键。还有history-search-backwardand history-search-forward,它使用当前命令的第一个单词作为前缀进行搜索,而不考虑光标位置。
小智 7
如果你想对非常相似的命令有一个很好的概述,你可以得到一个列表:
history|grep KEYSTRING
Run Code Online (Sandbox Code Playgroud)
然后用鼠标中键复制和粘贴。
Rgds - 乔