Acceder a comandos usados anteriormente en la terminal de Linux
En la terminal de Linux, existen varias formas eficientes de acceder a comandos que has utilizado previamente, incluyendo la autocompletación. Aquà te presento las principales:
1. Usando las flechas del teclado:
- Flecha arriba (↑): Presiona esta tecla repetidamente para retroceder por los comandos ejecutados más recientemente.
- Flecha abajo (↓): Después de usar la flecha arriba, puedes avanzar nuevamente en el historial.
2. Autocompletado con Tab:
-
Escribir las primeras letras y presionar Tab: Si escribes las primeras letras de un comando usado anteriormente y luego presionas la tecla
<Tab>
, la terminal intentará autocompletar el resto del comando.- Si hay múltiples coincidencias, presiona
<Tab>
dos veces rápidamente para ver una lista de los comandos que coinciden.
- Si hay múltiples coincidencias, presiona
3. Búsqueda en el historial con Ctrl + R
:
- Presiona
Ctrl + R
. Aparecerá(reverse-i-search)
. - Escribe parte del comando que buscas. La terminal mostrará la coincidencia más reciente.
- Sigue presionando
Ctrl + R
para buscar coincidencias anteriores. - Presiona
Enter
para ejecutar el comando encontrado o usa las flechas para editarlo. - Presiona
Ctrl + G
para salir de la búsqueda sin ejecutar nada.
4. El comando history
:
- Escribe
history
y presionaEnter
para ver una lista numerada de los comandos en tu historial. - Filtrar el historial: Usa
history | grep "palabra clave"
para encontrar comandos que contengan una palabra especÃfica (ejemplo:history | grep "git commit"
). - Ejecutar por número: Usa
!n
(donden
es el número del comando en la lista) para ejecutar un comando especÃfico (ejemplo:!123
). - Ejecutar por coincidencia inicial: Usa
!string
para ejecutar el comando más reciente que comience con "string" (ejemplo:!git
).
¿Durante cuánto tiempo se guarda el historial?
La cantidad de comandos y el tiempo de conservación dependen de la configuración de tu shell. Por defecto, suele guardar los últimos 500 o 1000 comandos en el archivo ~/.bash_history
. Esta configuración se puede modificar si es necesario.
2. Evitar duplicados en el historial:
HISTCONTROL=ignoredups
: Ignora comandos duplicados consecutivos (configurar en.bashrc
o.bash_profile
y aplicar consource
).HISTCONTROL=erasedups
: Borra todas las entradas anteriores duplicadas al guardar un nuevo comando (¡usar con precaución!).- Combinación:
HISTCONTROL=ignoredups:erasedups
para ambos comportamientos.
3. Ignorar comandos con espacio inicial:
HISTCONTROL=ignorespace
: No guarda comandos que comienzan con uno o más espacios.HISTCONTROL=ignoreboth
: Combinaignoredups
yignorespace
.- Uso: Teclear un espacio antes del comando para evitar que se guarde (si
ignorespace
está activo).
4. Borrar entradas del historial:
-
history -d <número_de_lÃnea>
: Borra la entrada especÃfica por su número de lÃnea (obtenido con el comandohistory
). -
Edición manual del archivo
~/.bash_history
: Cerrar todas las terminales, editar el archivo con un editor de texto, eliminar las lÃneas deseadas, guardar y abrir una nueva terminal. -
Limpiar todo el historial:
history -c
: Borra el historial de la sesión actual (en memoria).history -w
: Sobrescribe el archivo.bash_history
con el historial actual (generalmente vacÃo si se usóhistory -c
antes).
5. Combinación de HISTCONTROL
:**
- Solo la última asignación de
HISTCONTROL
tiene efecto si se definen varias veces. - Para combinar opciones, separarlas con dos puntos (ejemplo:
HISTCONTROL=ignoreboth:erasedups
).
6. Borrar comandos existentes (después de configurar HISTCONTROL
):
- La configuración de
HISTCONTROL
afecta solo a los nuevos comandos. - Para eliminar entradas antiguas duplicadas, se recomienda la edición manual del archivo
~/.bash_history
. - También se puede usar
history -d
repetidamente para borrar entradas especÃficas por su número de lÃnea.
Resumen rápido de atajos útiles
!!
: Ejecuta el último comando!n
: Ejecuta el comando número n!palabra
: Ejecuta el último comando que comienza por "palabra"^buscar^reemplazo
: Repite el último comando sustituyendo "buscar" por "reemplazo"- Ctrl+R: Busca interactiva en el historial