Документация для следующего в оболочке Bash: ключевое слово!

2

Если вы делаете следующее в Bash - возможно, и в других оболочках - вы выполняете команду из вашей истории, которая соответствует указанному ключевому слову:

$ !keyword

Я ищу документацию для этой команды. Я пробовал искать через человек баш страница, но не повезло. Я также попробовал Google, но почти невозможно (правильно?) Искать пунктуацию в Google.

Я хочу знать:

  1. В каком порядке эта команда ищет вашу историю? Самая старая команда для самых последних? Или наоборот?

  2. Я знаю о добавлении :п опция в конце команды, чтобы предотвратить выполнение, но есть ли другие опции? Хотя не уверен, какие еще варианты я бы хотел, но просто любопытно.

Конечно, я мог бы понять это методом проб и ошибок, но я лучше посмотрю документацию, прежде чем использовать эту аккуратную команду.

Возможно, я смотрю не в том месте? Любая помощь в отслеживании документации будет принята с благодарностью.

Belmin Fernandez
источник

Ответы:

2

Это называется расширение истории , Большинство команд расширения истории ссылаются на самую последнюю совпадающую командную строку (исключения являются ссылками на командную строку по номеру).

Самые полезные формы ! префикс расширение до самой последней команды, начинающейся с prefix, !? Подстроки? расширение до самой последней команды, содержащей substring, а также ^ от ^ в который заменяет from от to в предыдущей команде.

Вы можете извлечь только определенное слово вместо всей строки, добавив обозначение слова , как в

ls foo bar *~ *.pdf
rm !*

Модификаторы может выполнять подстановку строк и извлекать части слов. Модификатор :p заставляет полученную команду быть напечатанной, но не выполненной.

Gilles
источник
0

Орден самый последний к старому.

!n выполняет команду с номером n в history,

!-n выполняет последнюю последнюю команду в history,

!! выполняет последнюю команду (т.е. !-1 ).

Вы также можете, например, sudo !! если вы забыли префикс что-то с sudo,

Вы можете Google для bang или же bang bang найти что-то по этим командам, таким как этот или же этот

Также:

Большинство современных оболочек поддерживают команды bsh csh - bash, tcsh и zsh   все делают. Хотя некоторые команды взрыва не работают во всех этих оболочках, все   из следующего сделать

Так что, возможно, вам лучше смотреть в csh документация.

Daniel Beck
источник