Básicamente tiene un uso en arrancar argumentos anteriores (del comando) .
Por ejemplo, si se emite el siguiente comando:
echo Hello, world how are you today?
entonces, Hello,
será el primer argumento, y today?
el sexto , ese es el último; lo que significa que se puede hacer referencia al escribir:
Alt+6 seguido por Ctrl-Alt-6
Ctrltradicionalmente se denota como un carácter de sombrero ^
antepuesto a los nombres de las teclas, y Altcomo M-
ese es el prefijo M eta .
Por lo tanto, el acceso directo anterior se puede redefinir ^My
para tirar.
Además, hay un acceso directo de sustitución de sombreros en la línea de comando:
echo Hello, world!
^Hello^Bye
Bye, world!
para sustituir la primera cadena coincidente del comando anterior , lo que significa:
Hello, world! Hello, people!
^Hello^Bye
daría como resultado:
Bye, world! Hello, people!
dejando el segundo partido ( hello
) sin cambios.
Nota: No deje espacio entre sombreros , o la operación no funcionará.
Lo anterior es solo un atajo para:
!:s/Hello/Bye
La sustitución de nivel de evento (*) para la primera cadena encontrada (coincidente) en el comando anterior, mientras que el prefijo de la primera parte con el g
interruptor se aplicará a toda la línea g lobally :
echo Hello, world! Hello, people!
!:gs/Hello/Bye
Bye, world! Bye, people!
como se suele hacer en otros comandos relacionados, como sed
, vi
y en regex
(expresión regular), una forma estándar de búsqueda ( cadena de coincidencias ).
No, no puedes hacer !:sg/Hello/Bye
o !:s/Hello/Bye/g
aquí, ¡esa es la sintaxis !
- ! es para eventos; evento puede entenderse como salida de comando u operación realizada en el historial de comandos.
Eso es lo que entendí al usarlo yo mismo y probar cosas por mi cuenta a partir de lo que leí de varias fuentes, incluidas páginas de manual, blogs y foros.
Espero que arroje algo de luz sobre formas misteriosas del bash
shell Bourne-Again (un juego en sh
shell, que se llama Bourne shell después del apellido de su inventor), que es el shell predeterminado en muchas distribuciones, incluidos los servidores ( SO de servidor ).
bind -lp
y mirar los enlaces actuales.