Лично я использую псевдоним, полученный из ksh:
alias r="fc -e -"
('r' для 'rerun', я полагаю ...)
Я могу выполнить последнюю команду, начиная с 'foo':
r foo
Я могу выполнить команды с 46 по 50:
r 46 50
Я могу повторить команду 585:
r 585
Единственная ошибка в том, что если вы набрали:
$ cd somewhere
тогда выполнение 'r cd' не будет работать, потому что перед командой 'cd' было дополнительное пространство. Команда 'fc' лежит в основе истории, и вы можете отредактировать команды с 46 по 50, прежде чем перезапускать их, набрав:
fc 46 50
и т. Д. Для других вариантов.
('-e -' в псевдониме означает 'редактировать с помощью нулевого редактора'; вы можете написать 'fc -e vim' для редактирования с помощью vim, но большинство людей устанавливают VISUAL или EDITOR или FCEDIT или все три для в этом нет необходимости.)
В остальном, будучи человеком 'vim' (фанатик?), Я использую 'set -o vim', а затем средство поиска: ESC и
/grep\ -e\ 'whatever
для поиска в истории команды, содержащей "grep -e 'что угодно". Я могу повторить поиск, переместившись еще дальше назад в истории или в обратном направлении после выброса, или ... я предполагаю, что в режиме emacs есть эквивалентный механизм поиска.