Diferències
Ací es mostren les diferències entre la revisió seleccionada i la versió actual de la pàgina.
| Ambdós costats versió prèvia Revisió prèvia Següent revisió | Revisió prèvia | ||
| linux:bash:historyexpansion [10/04/2012 09:54] – mate | linux:bash:historyexpansion [20/01/2020 01:16] (actual) – mate | ||
|---|---|---|---|
| Línia 1: | Línia 1: | ||
| = history expansion | = history expansion | ||
| + | {{tag> | ||
| + | |||
| ^ shortcut | ^ shortcut | ||
| ^ eventos | ^ eventos | ||
| | ! | Indica que empieza la sustitución | | | ! | Indica que empieza la sustitución | | ||
| - | | !! | Último comando | | + | | !! | Último comando |
| | !n | enésimo comando | | | !n | enésimo comando | | ||
| - | | !-n | + | | !-n |
| | !string | | !string | ||
| | !? | | !? | ||
| - | | \^string1\^string2\^ | repite el último comando cambiando string1 por string2 | | + | | %%^string1^string2^%% | repite el último comando cambiando |
| - | | !# | | | + | | !!: |
| + | | !# | último comando | ||
| ^ palabras - siguen a un evento, separado por : ^^ | ^ palabras - siguen a un evento, separado por : ^^ | ||
| | 0 | la primera palabra de la linea, usualmente un comando | | | 0 | la primera palabra de la linea, usualmente un comando | | ||
| | n | la enésima palabra de una linea | | | n | la enésima palabra de una linea | | ||
| - | | ^ | + | | %%^%% | el primer argument - la segunda palabra | |
| | $ | el último argumento de una linea | | | $ | el último argumento de una linea | | ||
| | % | la palabra que cuadra con la búsqueda ?string? más reciente | | | % | la palabra que cuadra con la búsqueda ?string? más reciente | | ||
| Línia 19: | Línia 22: | ||
| | x* | equivalente a x-$ | | | x* | equivalente a x-$ | | ||
| | x- | ? | | | x- | ? | | ||
| + | ^ ejemplos de palabras: ^^ | ||
| + | | !: | ||
| + | | !:$ | último argumento del último comando| | ||
| + | | !:< | ||
| + | | !:* | todos los argumentos| | ||
| + | |||
| ^ modificaciones - siguen a una palabra, separados por : ^^ | ^ modificaciones - siguen a una palabra, separados por : ^^ | ||
| | h | quita el path del final | | | h | quita el path del final | | ||
| Línia 26: | Línia 35: | ||
| | p | imprime el comando resultantte sin ejecutarlo | | | p | imprime el comando resultantte sin ejecutarlo | | ||
| | q | entrecomilla las palabras cambiadas, escapandolas | | | q | entrecomilla las palabras cambiadas, escapandolas | | ||
| - | | x | entrecomilla las palabras | + | | x | entrecomilla las palabras |
| - | | s/ | + | | s/old/new/[g] | cambia OLD por NEW [g] hace que se aplique en toda la línea, no solo en el primero| |
| - | | & | repite la anterior sustitución | + | | & | repite la anterior sustitución |
| - | | g | hace que s se aplique a toda la linea | | + | |
| Ejemplos: | Ejemplos: | ||
| - | < | + | < |
| $ echo a b c d e | $ echo a b c d e | ||
| a b c d e | a b c d e | ||
| </ | </ | ||
| - | < | + | < |
| $ echo !!:3-$ | $ echo !!:3-$ | ||
| c d e | c d e | ||
| </ | </ | ||
| - | < | + | < |
| $ echo !-2:*:q | $ echo !-2:*:q | ||
| a b c d e -> ejecuta un echo 'a b c d e' | a b c d e -> ejecuta un echo 'a b c d e' | ||
| </ | </ | ||
| - | < | + | < |
| $ echo !-3:1:2:4:x | $ echo !-3:1:2:4:x | ||
| - | a b d -> ejecyta | + | a b d -> ejecuta |
| </ | </ | ||
| - | < | + | < |
| $ echo !-4: | $ echo !-4: | ||
| foo bar baz | foo bar baz | ||
| </ | </ | ||
| - | < | + | < |
| $ tar -xzf paquete.tar | $ tar -xzf paquete.tar | ||
| - | $ cd !-1: | + | $ cd !-1:$:r |
| + | cd paquete | ||
| </ | </ | ||
| - | < | + | < |
| $ ls -a /tmp | $ ls -a /tmp | ||
| - | $ ^-a^-l^ -> ejecuta | + | $ ^-a^-l^ -> sustituye -a por -l |
| + | ls -l /tmp | ||
| + | </ | ||
| + | |||
| + | <code bash> | ||
| + | $ ls -a /tmp | ||
| + | $ !!:s/-a/-l/ -> sustituye -a por -l | ||
| + | ls -l /tmp | ||
| + | </ | ||
| + | |||
| + | <code bash> | ||
| + | $ echo papa papa papa | ||
| + | $ !!: | ||
| + | echo mama papa papa | ||
| + | $ !!: | ||
| + | echo mama mama mama | ||
| + | </ | ||
| + | |||
| + | <code bash> | ||
| + | $ echo papa mama hijo hija | ||
| + | $ echo !!:3-4 -> recupera parámetros 3 y 4 | ||
| + | echo hijo hija | ||
| + | $ echo !!:* -> recupera todos los parámetros | ||
| + | echo hijo hija | ||
| + | $ echo echo papa mama hijo hija | ||
| + | $ !!:1-$ -> recupera los parámetros del 1 al final. Ejecuta el primer parámetro como instrucción | ||
| + | echo papa mama hijo hija | ||
| </ | </ | ||
| [[http:// | [[http:// | ||