В терминале я могу набрать CTRL-Rдля поиска подходящей команды, ранее набранной в BASH. Например, если я набираю, CTRL-Rто grep
перечисляет мою последнюю grep
команду, и я могу нажать Enter, чтобы использовать ее. Это только дает одно предложение, хотя. Есть ли способ циклически проходить через другие ранее набранные совпадающие команды?
445
CTRL+SHIFT+r
не работает для меня.[[ $- == *i* ]] && stty -ixon
в свой .bashrc, а затемCTRL+s
работать в обратном направленииCTRL+r
Если вы чувствуете, что команда будет использоваться часто, вы можете добавить тег
затем
Это работает, потому что
#
это разделитель комментариев, то есть все, что идет после символа, не интерпретируется как команда. Тем не менее, он будет записан в истории и, следовательно, для поиска.источник
Вы также можете настроить стрелки вверх и вниз для выполнения немного другого поиска, добавив эти строки в ~ / .inputrc:
Вместо поиска подстроки в любом месте команды (например, Ctrl-r ) она будет искать команду, начинающуюся с текста слева от курсора . Например, если я запускаю эти команды:
затем напечатайте
ls
и нажмите Upдважды, он покажетls bart
и курсор в том же месте. Сравните с Ctrl- r, где он найдетls
дважды в последней строке, так что вам придется нажать еще раз, чтобы найти предыдущую строку.Оба подхода имеют свои сильные стороны, и оба могут сэкономить много времени.
источник
~/.inputrc
и добавлять эти две строки.~/.inputrc
две строки, включая history-search- *Там есть замена для встроенной Ctrl + Rпод названием hstr . Это позволяет искать историю команд, совпадающую со всеми токенами поиска одновременно (между прочим), и просматривать результаты с помощью клавиш со стрелками:
Вот демонстрационный скринкаст .
Его можно установить на ОС семейства Debian, например:
А затем используйте Ctrl + R(после повторного открытия терминала).
источник