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 cdy 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 cdy 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 readliney búsqueda Default key bindings.
Para tomar el nargumento 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 echoseguido 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 nargumento 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