491 - Tres herramientas que han revolucionado mi terminal Linux
Te hablo sobre tres herramientas que han revolucionado mi terminal #linux como son #just , #chezmoi y #atuin . Te recomiendo que las pruebes
En este episodio del podcast, te quiero hablar sobre tres herramientas que sin lugar a dudas a revolucionado mi propio terminal de Linux. Son tres herramientas que llevo utilizando algunas mas tiempo que otras, pero que sin lugar a dudas han conseguido, por un lado mejorar mi productividad en mi terminal, pero que sobre todo, me permiten estar mas cómodo. En concreto quiero hablarte sobre just
, chezmoi
y atuin
Tres herramientas que han revolucionado mi terminal Linux
just
Esta es sin lugar a dudas la herramienta que me ha revolucionado en mayor medida mi terminal Linux. Esto es así, porque me permite crear pequeños ejecutadores
que se adaptan a mis diferentes necesidades en función del directorio en que me encuentro, y de las tareas que realizo en el mismo. Pero antes de liarme, te explico exactamente que es esta herramienta.
«Just» es un ejecutador de tareas y un sistema de construcción en Rust. Proporciona una forma conveniente de definir y ejecutar tareas comunes de desarrollo, como compilar código, ejecutar pruebas y administrar dependencias. Está inspirado en herramientas como Make y Cargo.
El archivo de configuración principal de «just» se llama «Justfile». En este archivo, puedes definir reglas para tareas específicas y establecer dependencias entre ellas. Luego, puedes invocar estas tareas desde la línea de comandos utilizando el comando just seguido del nombre de la tarea.
Aquí hay un ejemplo simple de un archivo Justfile:
# Comando básico
hello:
echo "¡Hola, mundo!"
# Tarea que depende de otra tarea
build: hello
rustc main.rs
# Tarea con argumentos
greet:
echo "Hola, $(name)!"
# Tarea predeterminada
default: build
En este ejemplo, puedes ejecutar la tarea hello
escribiendo just hello
en la línea de comandos. La tarea build
depende de la tarea hello
, por lo que al ejecutar just build
, primero se ejecutará la tarea hello
y luego se compilará el archivo main.rs
con rustc
. La tarea greet
demuestra cómo puedes pasar argumentos a las tareas utilizando la sintaxis $(nombre_del_argumento)
.
Eso no es mas que la punta del iceberg, la puerta de entrada a todo un mundo de posibilidades a la hora de tener una terminal completamente personalizada en lo que a ejecuciones se refiere.
chezmoi
La segunda de las herramientas, sobre la que ya te he hablado en alguna que otra ocasión es chezmoi
. Se trata de una herramienta implementada en go
, que te permite gestionar tus dotfiles. Si no conoces el maravilloso mundo de los dotfiles, decirte que no son mas que archivos de configuración de las herramientas que habitualmente utilizas en la tarminal, Linux.
Hasta la fecha, como he comentado en alguna que otra ocasión he estado utilizando diferentes herramientas, pero esta última, es justo la que mejor se adapata a mis necesides y ha conseguido, revolucionar esta gestión de forma eficaz, eficiente y sencilla.
Chezmoi proporciona un enfoque elegante para administrar y sincronizar tus archivos de configuración en diferentes máquinas.
La idea principal detrás de Chezmoi es almacenar tus dotfiles en un repositorio Git (u otro sistema de control de versiones) y utilizar enlaces simbólicos para sincronizarlos automáticamente en tu sistema. Esto te permite mantener un registro de cambios en tus configuraciones y aplicarlos fácilmente en diferentes entornos.
Aquí hay algunos conceptos y características clave de Chezmoi:
- Repositorio de configuración: Chezmoi utiliza un repositorio para almacenar tus dotfiles. Puedes crear un nuevo repositorio o utilizar uno existente. Los archivos de configuración se almacenan en un directorio especial dentro del repositorio.
- Plantillas: Chezmoi admite el uso de plantillas en tus archivos de configuración. Puedes utilizar variables y funciones en estas plantillas para generar contenido dinámico en función del entorno. Esto es especialmente útil cuando tienes configuraciones que varían en diferentes máquinas.
- Enlaces simbólicos: Chezmoi crea enlaces simbólicos desde tu directorio de inicio a los archivos de configuración en el repositorio. De esta manera, cualquier cambio realizado en los archivos del repositorio se reflejará automáticamente en tu sistema.
- Administración de secretos: Chezmoi proporciona una forma segura de administrar secretos dentro de tus dotfiles utilizando herramientas de cifrado y almacenamiento seguro. Puedes almacenar tus secretos en un repositorio seguro y Chezmoi se encargará de descifrarlos cuando sea necesario.
- Integración con sistemas de control de versiones: Chezmoi se integra fácilmente con Git u otros sistemas de control de versiones para realizar un seguimiento de los cambios en tus configuraciones. Esto te permite realizar un seguimiento de versiones, revertir cambios y colaborar con otros en tus configuraciones.
Estos son solo algunos aspectos destacados de Chezmoi. La herramienta ofrece muchas más características y opciones de configuración para adaptarse a tus necesidades específicas. Si estás interesado en aprender más sobre Chezmoi, te recomendaría consultar su documentación oficial, que proporciona una guía detallada sobre cómo configurar y utilizar la herramienta de manera efectiva.
Atuin
La última de las herramientas sobre la que te quería hablar es atuin
. Atuin reemplaza el historial de comandos de tu shell existente con una base de datos SQLite y registra información adicional sobre el contexto de tus comandos. Además, ofrece la opción de sincronización totalmente encriptada de tu historial entre máquinas, a través de un servidor de Atuin.
Además de la interfaz de búsqueda, puede hacer cosas como esta, de buscar todos los comandos exitosos de «make» registrados después de las 3 pm de ayer
atuin search --exit 0 --after "yesterday 3pm" make
¡Puedes utilizar el servidor que alojo o alojar el tuyo propio! O simplemente no utilizar la sincronización en absoluto. Como toda la sincronización del historial está encriptada, no podría acceder a tus datos incluso si quisiera. Y realmente no quiero hacerlo.
Algunas de las características de esta aplicación son las siguientes,
- Cambia la combinación de teclas Ctrl-R y Flecha Arriba (configurable) para acceder a una interfaz de búsqueda de historial a pantalla completa.
- Almacena el historial del shell en una base de datos SQLite.
- Realiza copias de seguridad y sincroniza el historial del shell encriptado.
- Mantiene el mismo historial en diferentes terminales, sesiones y máquinas.
- Registra el código de salida, el directorio de trabajo actual, el nombre del host, la sesión, la duración del comando, etc.
- Calcula estadísticas como «comando más utilizado».
- El archivo de historial anterior no se reemplaza.
- Salta rápidamente a elementos anteriores con Alt-.
- Cambia los modos de filtro mediante Ctrl-R; busca historial solo en la sesión actual, directorio o globalmente.
Hola Lorenzo, me topé con una herramienta parecida a just, llamada ckit, que se ve interesante, aunque no la probé a fondo aún. Una diferencia interesante, es que permite agrupar en distintos menúes/submenúes.
Dejo el enlace https://fpgmaas.github.io/ckit/