Прокрутите историю оболочки на основе команды или заглушки / ствола?
Пожалуйста, прости мое невежество.... У меня есть история команд в Bash на OS X и Linux. Иногда я хочу вернуться к элементу на основе команды. Например, предположим, что я ранее ввел:
make distclean && make dist && cp *.diff *.tar.gz ../
Тогда, предположим, у меня в истории следуют десятки или сотни команд.
Как я могу печатать make
а затем используйте, скажем, стрелку вверх (↑
) или управление и стрелка вверх (CTRL
↑
) вернуться к этой команде в истории?
"Заглушка" или "ствол" означает, что я только набираю "ма", а не "делаю".
Я работаю в Bash как на Linux, так и на OS X, поэтому меня будут интересовать обе операционные системы.
3 ответа
В качестве альтернативы Ctrl-R
, вы можете использовать команду истории и передать его grep
для конкретной команды.
$ history | grep vi
7 vi /etc/shells
8 sudo vi /etc/shells
Оттуда вы можете увидеть номер истории и снова запустить эту команду, используя !number
,
$ !8
sudo vi /etc/shells
Password:
И я верю, что до тех пор, пока вы не заполните или не очистите историю команд, это число должно оставаться неизменным.
Вот несколько полезных трюков, которые помогут вам повторить команду на основе предыдущих команд (кроме использования Ctrl+R):
использование
!name
повторить последнюю команду, начиная с имени, например:!make
повторить команду (например, с
sudo
), используйте:sudo !!
чтобы повторить аргумент, используйте
!$
:ls /usr/local/bin cd !$
чтобы редактировать файл из последнего аргумента, используйте
!^
:cp /etc/hosts hosts.bak vim !^
Подробнее на: Как использовать Bash History для повышения производительности командной строки
Также смотрите: Какие ваши любимые функции или приемы командной строки? в Unix SE
Как примечание, если вы делаете опечатки слишком часто, это приложение для этого:
E сть readline
(не bash
) функция, которая делает именно это. Добавлять:
"\e[A":history-search-backward
"\e[B":history-search-forward
на ваш .inputrc
файл.
В отличие от Ctrl-r
он совпадает только с префиксом. См . Наиболее важный совет командной строки - добавочный поиск в истории с помощью.inputrc для более подробной информации.