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 comando
apt-get install a-long-list-of-packages
no tienes que volver a escribir todo eso de nuevo. En su lugar solo llame
sudo !!
Si desea volver a ejecutar el comando en una posición específica de su historial, también puede usar !
, por ejemplo
!3
para 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 ejemplo
!-2
volvería a ejecutar el segundo último comando.
También puede volver a ejecutar el último comando que comenzó con una cadena como
!apt-
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
!?pt-ge
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
!-5:3:p
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 presiona ENTER
y su tercer último comando fue ls ~
, en efecto es lo mismo que si ls ~
volviera a escribir y presiona ENTER
"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 el shopt
comando. Con histverify
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 crucial ENTER
tú mismo, o abstenerte de hacerlo, si lo deseas.