¿Cómo recuerdo un comando específico del historial de comandos, sin ejecutarlo?

13

Por ejemplo, en bash puedo escribir !xyzlo que ejecutará el último comando que escribí comenzando con xyz.

¿Cómo puedo mostrar el último comando que escribí comenzando xyzpero sin ejecutarlo?
por ejemplo, así puedo cambiar los parámetros antes de la ejecución ...

Mtl Dev
fuente

Respuestas:

20

Puede hacerlo así: en el símbolo del sistema, presione Ctrl+ ry luego escriba el comando que desea recuperar, en su caso xyz. Esto le mostrará el comando completo sin ejecutarlo.

usuario2249251
fuente
1
Más útil que la !notación, porque puede presionar Ctrl-r varias veces para avanzar más en el historial de coincidencias. Cuando llegue al lugar adecuado, puede intentar ejecutar no con Enter sino con Ctrl-o para obtener muchas ganancias.
kubanczyk
12

Prueba !xyz:p; recordará el comando al principio de la historia sin ejecutarlo, por lo que, por ejemplo, la flecha hacia arriba puede acceder de inmediato a él para la edición interactiva.

Como comentario, practico hacer esto cuando recuerdo comandos con una expresión regular que podría desenterrar algo dañino, desde que un apresurado !r, destinado a recordar el rsync ...comando más reciente , retrocedió y ejecutó uno rm *que había sido empujado a la pila más recientemente que el rsync.

MadHatter
fuente
Gracias, esa es una buena práctica. He hecho lo mismo con un rm -rf ./*nunca tan agradecido por un período. FYI !xyz:pFuncionó, gracias, pero requirió algunas teclas adicionales que la solución ctrl-r.
Mtl Dev
@MtlDev sí; Creo que la solución ^ R funciona mejor para EMACStodos, mientras que! -Path funciona mejor para violators como yo.
MadHatter
1
  1. Ejecute el siguiente comando. Se hará eco del último comando ejecutado. Puede copiar y editar el comando. Este comando probado en debian.

    historia | cola -2 | grep -v historia | cortar -d '' -f4-

  2. O bien, Mantenga presionada la tecla Ctrl + R y escriba la letra inicial de su último comando. Enumerará los comandos que ejecutó previamente en función de su entrada. Una vez que muestra el comando deseado, simplemente presione la flecha derecha para seleccionar ese comando.

vembutech
fuente
1
¡El primer comando es tan suave! Creo que es más rápido cuidar el comando en la historia que escribir todo esto ^ __ ^
Grajdeanu Alex.
1

Si la búsqueda de historial inverso falla, haga algo de:

$ history | grep WHAT_YOU_LOOK_FOR

O:

$ grep WHAT_YOU_LOOK_FOR ~/.bash_history
178024
fuente