Введите Ctrl Rв командной строке и начните вводить предыдущую команду. Когда появится результат, продолжайте нажимать, Ctrl Rчтобы увидеть другие совпадения. Когда появится нужная команда, просто нажмитеEnter
Обратите внимание, что Ctrl Rпо умолчанию используется while, если вы хотите, чтобы команда ( reverse-search-history
) была связана с Ctrl Tвами, вы можете настроить это следующим образом:
связать "\ Ct": обратный поиск истории "
Существует целый ряд других привязываемых команд readline, которые также доступны для вас. Посмотрите на bash
справочную страницу .
Bash имеет много возможностей для поиска и доступа к интерактивной истории команд. Основным из которых является history
встроенный. Набрав просто:
$ история
Напечатает список команд вместе с числовым индексом, например:
$ история 1 ясно 2 ls -al 3 vim ~ / somefile.txt 4 история $
Затем вы можете выполнить любую из этих команд, используя их числовой индекс, предварительно указав одинарный индекс !
, как указывал Митч :
$! 1
Выполню clear
команду. Встроенная история имеет много функций, вы можете увидеть больше на страницах bash
и history
man.
Вы также можете указать относительные отрицательные смещения при использовании !
указателя, поэтому, используя наш список истории выше, если мы хотим выполнить vim
снова, мы могли бы сделать:
$! -2
Что в основном говорит bash выполнить команду, которую вы выполнили «две команды назад». Чтобы запустить предыдущую команду в списке истории, мы можем просто использовать !!
(это просто сокращение !-1
).
!
Целеуказатель не ограничивает вас численно задающий, какую команду для запуска. Хаялчи показал, что вы можете дать команду bash
выполнить команду на основе текста, с которого она начинается (использование !
), или текста внутри самой команды (использование !?
). Снова, используя наш примерный список истории выше, если мы хотим выполнить clear
снова, все, что нам нужно сделать, это набрать:
$! cl
и нажмите Enter. А как насчет vim
? Это так просто, как:
$!? некоторые
Самый важный момент из ответа Хаяльчи - это вызов shopt
встроенного:
$ shopt -s Histverify
Это включит проверку истории, так что команды, которые соответствуют символам !
, !!
и !?
, не выполняются вслепую, а вместо этого заполняются в командной строке, чтобы вы могли убедиться, что они не причинили зла, прежде чем выполнять их. Это еще более важно, когда вы выполняете команды от имени пользователя root. Эта опция может быть установлена в вашем .bashrc
файле запуска, так что она устанавливается при каждом входе в систему.
Как уже указывалось, всю эту информацию можно почерпнуть из справочной bash
страницы . Для!, !!, и!? указатели, взгляните на Раздел 9.3 Расширение истории .