Fondamentalement, il a une utilité pour extraire les arguments précédents (de la commande) .
Par exemple, si la commande suivante est émise:
echo Hello, world how are you today?
alors, ce Hello,
sera le premier argument, et today?
le sixième , c'est le dernier; ce qui signifie qu'il peut être référencé en tapant:
Alt+6 suivi par Ctrl-Alt-6
Ctrlest traditionnellement désigné comme un caractère de chapeau ^
ajouté aux noms des clés, et Altcomme M-
c'est le préfixe M eta .
Ainsi, le raccourci ci-dessus peut être redéfini ^My
pour tirer.
En outre, il existe un raccourci de substitution de chapeaux dans la ligne de commande:
echo Hello, world!
^Hello^Bye
Bye, world!
pour remplacer la première chaîne correspondante de la commande précédente , ce qui signifie:
Hello, world! Hello, people!
^Hello^Bye
entraînerait:
Bye, world! Hello, people!
laissant le deuxième match ( hello
) inchangé.
Remarque: Ne laissez pas d' espace entre les chapeaux , sinon l'opération ne fonctionnera pas.
Ce qui précède n'est qu'un raccourci pour:
!:s/Hello/Bye
la substitution au niveau de l'événement (*) de la première chaîne trouvée (appariée) dans la commande précédente, tandis que le préfixe de la première partie avec le g
commutateur s'appliquera à l'ensemble de la ligne g lobalement :
echo Hello, world! Hello, people!
!:gs/Hello/Bye
Bye, world! Bye, people!
comme cela se fait habituellement dans d'autres commandes connexes telles que sed
, vi
et dans regex
(expression régulière) - une méthode standard pour rechercher ( chaîne de correspondance ).
Non, vous ne pouvez pas faire !:sg/Hello/Bye
ou !:s/Hello/Bye/g
ici, c'est la syntaxe !
- ! est pour les événements; L'événement peut être compris comme une sortie de commande ou une opération effectuée dans l'historique des commandes.
C'est ce que j'ai compris en l'utilisant moi-même et en essayant moi-même des choses à partir de ce que j'ai lu à partir de diverses sources, y compris des pages de manuel, des blogs et des forums.
J'espère qu'il éclaircira de mystérieuses façons de faire bash
, le shell Bourne-Again (un jeu sur sh
shell, qui s'appelle lui-même Bourne shell d'après le nom de famille de son inventeur), ce qui est le shell par défaut dans de nombreuses distributions, y compris les serveurs ( OS de serveur ).
bind -lp
et regarder les liaisons actuelles.