Существует функция readline end-of-history
, по умолчанию сопоставленная с M- >, но если она используется во время обратного поиска, она выходит из запроса обратного поиска.
Возможный обходной путь / уловка
Начать поиск строки
Вместо этого, чтобы использовать обратный поиск, вы можете использовать history-search-backward
и history-search-forward
(по умолчанию не сопоставлено), сопоставляя их up/down(очень полезно) в вашем .inputrc
:
# up-down arrow to search in history
"\e[A":history-search-backward
"\e[B":history-search-forward
Таким образом, после того, как вы набрали, вы можете отменить поиск нажатием up
(вместо Ctrl+ R), а когда вы хотите вернуться в конец истории, вы можете использовать end-of-history
функцию, нажав ( M- >)
Таким образом, «Строка поиска должна совпадать в начале строки истории », поэтому, если вы ищете ls -ltr
, вы должны ввести, ls
а затем нажать upклавишу.
Поиск подстроки
если вы хотите, чтобы « строка поиска могла совпадать в любом месте строки истории », вы должны использовать history-substring-search-forward
и history-substring-search-backward
:
# up-down arrow to search in history
"\e[A":history-substring-search-backward
"\e[B":history-substring-search-forward
Таким образом, если вы ищете ls -ltr
, вы можете ввести ls
, но также ltr
, прежде чем нажать up.
Справочник: Справочное руководство Bash - Команды для истории .
history
покажет вам все команды bash, сделанные ..