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 + Rpara buscar coincidencias anteriores. - Presiona
Enterpara ejecutar el comando encontrado o usa las flechas para editarlo. - Presiona
Ctrl + Gpara salir de la búsqueda sin ejecutar nada.
4. El comando history:
- Escribe
historyy presionaEnterpara 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(dondenes el número del comando en la lista) para ejecutar un comando específico (ejemplo:!123). - Ejecutar por coincidencia inicial: Usa
!stringpara 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.bashrco.bash_profiley aplicar consource).HISTCONTROL=erasedups: Borra todas las entradas anteriores duplicadas al guardar un nuevo comando (¡usar con precaución!).- Combinación:
HISTCONTROL=ignoredups:erasedupspara ambos comportamientos.
3. Ignorar comandos con espacio inicial:
HISTCONTROL=ignorespace: No guarda comandos que comienzan con uno o más espacios.HISTCONTROL=ignoreboth: Combinaignoredupsyignorespace.- Uso: Teclear un espacio antes del comando para evitar que se guarde (si
ignorespaceestá 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_historycon el historial actual (generalmente vacío si se usóhistory -cantes).
5. Combinación de HISTCONTROL:**
- Solo la última asignación de
HISTCONTROLtiene 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
HISTCONTROLafecta 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 -drepetidamente 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