В основном он используется для восстановления предыдущий (команды) аргументы .
Например, если введена следующая команда:
echo Hello, world how are you today?
тогда Hello,
будет первым аргументом, а today?
шестым , то есть последним;то есть на него можно ссылаться, набрав:
Alt + 6 , а затем Ctrl-Alt-6
Ctrl традиционно обозначается как шляпный символ ^
перед именами клавиш, а Alt как M-
, то есть M eta prefix.
Таким образом, вышеупомянутый ярлык может быть переопределен как ^My
в yank.
Кроме того, в командной строке есть hats заменяющий ярлык:
echo Hello, world!
^Hello^Bye
Bye, world!
для замены первой совпавшей строки предыдущей команды , что означает:
Hello, world! Hello, people!
^Hello^Bye
приведет к:
Bye, world! Hello, people!
оставив второе совпадение (hello
) без изменений.
Примечание. Не оставляйте пробел между шляпами , иначе операция не будет работать.
Выше указанопросто ярлык для:
!:s/Hello/Bye
подстановка уровня события (*) для первой найденной (совпавшей) строки в предыдущей команде, в то время как префикс первой части с переключателем g
будет применяться к вся строка g lobally :
echo Hello, world! Hello, people!
!:gs/Hello/Bye
Bye, world! Bye, people!
, как это обычно делается в других связанных командах, таких как sed
, vi
и в regex
(регулярное выражение) - стандартный способ поиска ( строка соответствия ).
Нет, вы не можете сделать !:sg/Hello/Bye
или !:s/Hello/Bye/g
здесь, это синтаксис !
- !для событий;событие может быть понято как вывод команды или операция, выполненная в истории команд.
Это то, что я понял, используя его сам и пробуя самостоятельно, исходя из того, что я читал из различных источников, включая руководствостраницы, блоги и форумы.
Надеюсь, что это проливает некоторый свет на загадочные способы bash
, оболочки Bourne-Again (игра на оболочке sh
, которая сама по себе называется оболочкой Bourne после ее изобретателяфамилия), какова оболочка по умолчанию во многих дистрибутивах, включая серверы ( серверные ОС ).