Al ejecutar comandos, a veces quizás necesite ejecutar un comando con el argumento del último comando. ¿Cómo puedes hacer esto?
Por supuesto, exceptuando el uso de las teclas de flecha y Delteclas: ↑←←←... ←→→DelDelDel... Del<new_command>
.
Al ejecutar comandos, a veces quizás necesite ejecutar un comando con el argumento del último comando. ¿Cómo puedes hacer esto?
Por supuesto, exceptuando el uso de las teclas de flecha y Delteclas: ↑←←←... ←→→DelDelDel... Del<new_command>
.
Respuestas:
Por ejemplo, si ejecuta este comando:
mkdir long_path_here/new_dir
lo más probable es que desee ir al directorio creado recientemente. Puedes hacer esto usando los siguientes "atajos":
cd
Esc.- escriba cd
y luego presione Escseguido de .(no al mismo tiempo). Si el comando anterior no tiene argumentos, obtendrá el comando anterior en sí.cd !*
- en este caso obtendrá todos los argumentos del comando anterior. Si el comando anterior no tiene argumentos, no obtendrá nada.cd
Alt+ .- escribe cd
y después de presionar Alty .(al mismo tiempo). De hecho, al usar esta forma y continuar presionando .(sin soltar Alt), obtendrá el último argumento para cada comando del historial. Si un comando no tiene argumentos, obtendrá el comando en sí.En general: <command>
Esc.o <command> !*
o <command>
Alt+ ..
Hay algunos accesos directos si desea todos los argumentos del comando anterior, o solo el último argumento.
<command> !*
<command> !$
Ejemplos:
ls foo/ bar/
ls !* # Gives the results of ls foo/ bar/
ls foo/ bar/
ls !$ # Gives the results of ls bar/
Si desea un único argumento de una lista de argumentos del comando anterior, puede usar <command> !!:<argNumber>
Ejemplo:
ls foo/ bar/ baz/
ls !!:2 # Gives the results of ls bar/
ls foo/ bar/ baz/
ls !!:1 # Gives the results of ls foo/
!
en la versión única arg, por ejemplo, !:2
. Asumiendo bash por defecto.
!^
en lugar de !:1
.
Mencionado !*
y !$
es algo bueno, pero cuando necesite hacer un poco de edición, los atajos de línea de lectura le ayudarán.
Por ejemplo, en lugar de los innumerables ↑←←←... ←→→DelDelDel... Delsolo puede presionar ↑ Ctrl-a(saltar al inicio de la línea) Alt+d(eliminar hasta el final de la palabra)
Para más información man readline
y búsqueda Default key bindings
.
Para tomar el n
argumento th de su comando anterior, escriba Alt+ n
+ Alt_. Por ejemplo, después de:
$ echo 1 2 3 4 5 6 7 8 9 10
1 2 3 4 5 6 7 8 9 10
escribir echo
seguido Alt2Alt_le dará esto en el siguiente mensaje:
$ echo 2
La "captura de pantalla" después de haber golpeado Alt2es:
(arg: 2) echo
Puede repetir Alt_varias veces para obtener el n
argumento th de comandos anteriores en sucesión.
Otra idea útil es definir alias r="fc -s"
. Entonces, puedes hacer sustituciones de comandos:
$ echo 1
1
$ r echo=history
history 1
27755 history 1