Presionar el botón arriba es tedioso y podría perder el comando que estaba buscando. Entonces, cuando escribo history
en la terminal me da todos los comandos que he ingresado anteriormente, indexados a un número. ¿Hay alguna forma de que pueda llamar al número asociado con el comando?
20
Respuestas:
La historia de bash puede hacer muchas cosas útiles, y la búsqueda con la
Strg-r
que mencionó Terry Wang es importante entre ellas. Pero también es posible hacer exactamente lo que solicitó.Puede volver a hacer el comando anterior con
!!
. Con esto, también puede editar el comando anterior. Si, por ejemplo, olvidó obtener privilegios de root para un comandono tienes que volver a escribir todo eso de nuevo. En su lugar solo llame
Si desea volver a ejecutar el comando en una posición específica de su historial, también puede usar
!
, por ejemplopara volver a ejecutar el comando en la posición 3. Tenga en cuenta que esto cuenta desde arriba. Entonces, si está almacenando 500 comandos en su historial,
!1
sería "hace 500 comandos". También puedes usar números negativos. Por ejemplovolvería a ejecutar el segundo último comando.
También puede volver a ejecutar el último comando que comenzó con una cadena como
que volvería a hacer la última línea que comenzó con "apt-". Si desea el último comando donde apareció la cadena en cualquier lugar de la línea, puede usar algo como
Hay cosas más interesantes que la historia de bash puede hacer. Solo para dar una idea de la amplia gama de posibilidades, puede acceder específicamente a un parámetro de un comando desde el historial. Entonces
imprimiría el tercer parámetro al quinto desde el último comando.
EDITAR: Con respecto al comentario de Rudie a continuación, con la configuración estándar, estas expansiones del historial de bash se ejecutan directamente. Probablemente se describa mejor así: una llamada como
!-3
se reemplaza por el shell con el tercer último comando de su historial y luego se ejecuta su entrada (con el reemplazo). Entonces, si escribe!-3
y presionaENTER
y su tercer último comando fuels ~
, en efecto es lo mismo que sils ~
volviera a escribir y presionaENTER
"por su cuenta".Si no quiere eso, puede configurar la opción de shell
histverify
. Para configurar y desarmar opciones de shell, es posible que desee leer sobre elshopt
comando. Conhistverify
set, una llamada como!-3
solo escribe el reemplazo de su historial en su línea de comando, pero no lo ejecuta directamente. Tienes que, por decirlo así, presionar el crucialENTER
tú mismo, o abstenerte de hacerlo, si lo deseas.fuente
!
es bastante peligroso ... Me gustaría saber qué!-4
hizo exactamente antes de ejecutarlo. ¿O te muestra primero? Resumen genial!!-238
. No debería ser demasiado difícil recordar su segundo, último, quizás el último comando;) Como a menudo con Linux (y, en realidad, con la informática en general), se espera que sepa lo que está haciendo. Y si realmente quiere la red de seguridad adicional, está a unashopt
distancia;)Sí hay. Si, por ejemplo, desea ejecutar el comando que tiene el número 1234 al lado, haga lo siguiente:
!1234
Otras cosas útiles:
Si desea ejecutar el último comando que ejecutó, haga:
Si desea ejecutar el último
ls
comando que ejecutó, haga:Si acaba de correr
ls /some/long/path
y quierecd
hacerlo, haga lo siguiente:Para más información:
fuente
Usar combinación de teclas
Ctrl
:r
podrá usar palabras clave para buscar en el historial de bash.Una referencia rápida de enlace de teclas bash: http://ss64.com/bash/syntax-keyboard.html
fuente
Si ha encontrado el número de historial de un comando y desea ejecutarlo nuevamente, escriba
!
seguido del número, por ejemplo,!1234
y presione Enter. Esto es parte de la expansión de la historia ; puedes agregar modificadores en él.Si desea editar el comando antes de ejecutarlo,
fc 1234
invoca un editor externo.Pero como Terry Wang ya mencionó , generalmente hay formas más rápidas de ubicar un comando en el historial que determinar su número de historial, incluido Ctrl+ Rpara invocar la búsqueda incremental (presione Entercuando haya encontrado el comando que desea ejecutar) o
fc PREFIX
ejecutar el comando anterior comando que comienza conPREFIX
.fuente
El
history
comando mostrará todos los comandos y sus números asociados. Si desea hacer una comprobación rápida antes de ejecutar la línea de comando # 135, puede escribir:Esto le mostrará lo que se va a ejecutar.
fuente