По сути, он полезен для восстановления предыдущих (командных) аргументов .
Например, если введена следующая команда:
echo Hello, world how are you today?
Затем, Hello,
будет первый аргумент, а today?
на шестой , который является последним; то есть на него можно ссылаться, набрав:
Alt+6 с последующим Ctrl-Alt-6
Ctrlтрадиционно обозначаются как шляпа характер ^
предварённого к именам ключей, а Altтакже M-
что M ет префикс.
Таким образом, вышеприведенный ярлык может быть переопределен как ^My
янки.
Также в командной строке есть ярлык замены шапки :
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 по фамилии своего изобретателя), которая является оболочкой по умолчанию во многих дистрибутивах, включая серверы ( серверные ОС ).
bind -lp
и смотреть текущие привязки.