Fundamentos de la línea de comandos
Teoría: Historia
Cuando usamos mucho la terminal (línea de comandos), lo más común es repetir comandos una y otra vez. Por suerte, hay una manera muy práctica de recuperar lo que hemos escrito antes sin tener que escribirlo todo otra vez. En esta lección vamos a aprender a trabajar con el historial de comandos, paso a paso, con ejemplos y casos reales.
¿Qué es el historial de comandos?
Archivo .bash_history
El archivo donde se guarda el historial se llama .bash_history y se encuentra en nuestro directorio personal.
Podemos verlo con el comando tail, que nos muestra las últimas líneas del archivo:
Por ejemplo, podríamos ver algo como esto:
Usar las teclas de flecha
La forma más sencilla de revisar comandos anteriores es usar las teclas ↑ (flecha arriba) y ↓ (flecha abajo) del teclado:
- Presiona ↑ para ver el comando anterior.
- Presiona ↓ para ir al siguiente.
Esta forma no requiere escribir nada, y es muy útil si estás buscando un comando que escribiste recientemente.
Usar el comando history
Otra manera más directa de ver todo el historial es con el comando history:
La salida se ve así:
Podemos pedir solo los últimos registros, por ejemplo los últimos 5:
Repetir un comando por su número
Cada comando tiene un número. Si queremos repetir uno sin escribirlo de nuevo, usamos el símbolo de exclamación ! seguido del número del comando.
Por ejemplo:
Eso ejecuta el comando número 2 del historial. En nuestro ejemplo, sería:
Y el resultado es:
Buscar en el historial usando grep
Si queremos encontrar un comando en específico, podemos usar grep, que es una herramienta para buscar texto.
Por ejemplo, si recordamos que usamos el comando export pero no recordamos cómo era exactamente, usamos:
Esto nos mostrará solo las líneas del historial que incluyen export.
Búsqueda inversa: Ctrl + r
Este truco es de los más útiles. Si presionamos las teclas Ctrl + r dentro de la terminal se activa una búsqueda en el historial.
Luego de eso, empezamos a escribir parte del comando. Por ejemplo, si escribimos “dock”, nos puede salir:
(reverse-i-search)`dock’: docker ps
Si no es el comando que buscas, puedes seguir presionando Ctrl + r para avanzar por los siguientes coincidencias.
Esta búsqueda es muy rápida cuando no recuerdas bien el comienzo del comando completo.
¿Cuántos comandos guarda el historial?
La cantidad de comandos que guarda Bash depende de una variable de entorno llamada HISTFILESIZE.
- Si está definida, su valor indica la cantidad máxima de líneas en el historial.
- Si no está definida, el historial puede crecer sin límite.
Podemos ver el valor actual con:
Y si queremos cambiarlo temporalmente (solo para la sesión actual), podemos usar:
Esto hará que solo los últimos 2000 comandos se almacenen.
Búsqueda avanzada con FZF
Hay herramientas más modernas para buscar en el historial. Una muy útil es fzf, que permite hacer búsquedas interactivas con autocompletado.
Aunque esta herramienta no viene instalada por defecto, puede mejorar mucho la experiencia si trabajamos seguido con la terminal.
Resumen
- La terminal guarda los comandos en un archivo llamado
.bash_history. - Podemos revisar comandos anteriores con flechas ↑ y ↓.
- El comando
historymuestra todo el historial, cada comando con un número. - Podemos repetir un comando anterior usando
!n, dondenes el número del comando. - Si usamos
history | grep palabra, buscamos comandos por palabra clave. - Con Ctrl + r activamos una búsqueda interactiva en el historial.
- La cantidad de comandos que se guardan depende de la variable
HISTFILESIZE. - Herramientas como
fzfpermiten búsquedas más rápidas y cómodas.
Conocer bien el historial de Bash nos ayuda a trabajar mucho más rápido y con menos errores. Nos vemos en la siguiente lección.