Xonsh: Lenguaje de Shell y Prompt de comandos multiplataforma
Estos dĂas recientes he estado curioseando el Internet, buscando informaciĂłn Ăştil relacionada con Shell Scripting. Con el objetivo de actualizar el cĂłdigo de una pequeña y Ăştil herramienta de software que creĂ© hace poco más de una dĂ©cada. AplicaciĂłn que en su momento, se llamaba Linux Post Install – Script Bicentenario (LPI-SB), y estaba generada Ăşnicamente con Ăłrdenes de comandos basadas en Bash. Y en medio de esa bĂşsqueda he conocido un interesante utilitario o programa llamado «Xonsh».
Para quienes nunca han escuchado de esta aplicaciĂłn, vale adelantar que la misma es, una genial herramienta de software para terminales que ofrece un Lenguaje de Shell y un Prompt de comandos multiplataforma que funciona con Python.

Y como de costumbre, antes de entrar de lleno en el tema de hoy sobre herramientas y usos del Terminal, y más especĂficamente sobre la Ăştil aplicaciĂłn llamada «Xonsh», dejaremos para aquellos interesados los siguientes enlaces a algunas anteriores publicaciones relacionadas. De manera tal, de que puedan explorarlas fácilmente, en caso de ser necesario, luego de finalizar de leer esta presente publicaciĂłn:
“Shell Scripting es la tĂ©cnica (habilidad / destreza) de diseñar y crear Script (archivo de automatizaciĂłn de tareas) mediante un Shell (preferiblemente) de un Sistema Operativo, o un Editor de Texto (Gráfico o Terminal). Este es un tipo de lenguaje de programaciĂłn que generalmente es interpretado. Es decir, que mientras la mayorĂa de los programas son compilados (codificados), porque son convertidos permanente a un cĂłdigo especifico (especial) antes de que puedan ejecutarse (proceso de compilaciĂłn), un script de shell permanece en su forma original (su cĂłdigo fuente en forma de texto) y son interpretados comando por comando cada vez que se ejecutan”. Shell, Bash y Scripts: Todo sobre Shell Scripting

Xonsh: Shell para Bash, Python y más
¿Qué es Xonsh?
Según su sitio web oficial, la aplicación «Xonsh» es descrita brevemente de la siguiente forma:
“Es una shell potenciada por Python. Un lenguaje de shell y un prompt de comandos multiplataforma y con tecnologĂa Python. El lenguaje es un superconjunto de Python 3.6+ con algunas shells adicionales a las que estás acostumbrado de Bash e Python. Funciona en todos los sistemas principales, incluyendo Linux, OSX y Windows. Xonsh está pensado para el uso diario de expertos y novatos”.
Sin embargo, luego agregan que con ella:
“Cualquier usuario de terminal puede mezclar fácilmente comandos de Python y del Shell (como Bash) en un enfoque potente y simplificado de la lĂnea de comandos”.
Lo que, en palabras más sencillas se traduce en que al ejecutar «Xonsh» se nos ofrece un Shell o ambiente de terminal donde podremos ejecutar tanto comandos simples como órdenes de comandos complejas de Bash Shell como de Python. Lo cual puede ser extremadamente útil, tanto para SysAdmin y Devs, como para entusiastas y principiantes de la terminal, ya sea para aprender como para empezar a trabajar.
CaracterĂsticas
Actualmente, «Xonsh» va por su la Ăşltima versiĂłn de nĂşmero 0.11.0, liberada el dĂa 17/11/21. Y puede ser instalada de muchas formas, por ejemplo, por consola, de forma tradicional con el gestor de paquetes usado de costumbre en cada Distro GNU/Linux, como por el gestor Pip de Python, o mediante un archivo AppImage o usando Docker.
Entre sus caracterĂsticas o funciones generales tiene las siguientes:
- Permite combinar comandos de (Bash) Shell con Python o viceversa.
- Permite el uso de extensiones de terceros, xontribuciones o xontribs, los cuales no son más que, un conjunto de herramientas y convenciones para extender la funcionalidad de xonsh.
- Ofrece una interfaz robusta en cuanto a manejo del historial, dado que, crea archivos de historial con una rica estructura y metadatos y una API para interactuar con ellos.
- Incluye una potente personalización de los avisos, que se materializa mediante la terminación de pestañas, los enlaces de teclas y los estilos de color personalizables, incorporados por defecto.
Mientras que, en esta Ăşltima versiĂłn actual se incluyeron novedades, tales como:
- AdicciĂłn de la uniĂłn de las teclas CTRL-Derecha para completar una sola palabra de autosugestiĂłn.
- VisualizaciĂłn del tipo y la descripciĂłn de las variables de entorno al completarlas.
- Mejoramiento del completador de pip/xpip.
- AdicciĂłn de la tecla CTRL-Retroceso para eliminar una sola palabra mediante $XONSH_CTRL_BKSPC_DELETION.
Para más información sobre «Xonsh» puedes visitar su sección oficial en PyPi y GitHub, o directamente su sección de Documentación y Tutorial, en su sitio web oficial.
Pantallazos
En nuestro caso, luego de instalada con la orden de comando «sudo apt install xonsh» y la siguiente «sudo pip3 install prompt_toolkit», ya pudimos empezar a ejecutarla y teclear comandos de Bash y Python en una sola Shell, tal como se muestra a continuación:
Apertura del Terminal

EjecuciĂłn de la Shell de Xonsh


Ejemplos comandos de Bash


Ejemplos de comandos de Python

Por Ăşltimo, para explorar más artĂculos sobre Shell Scripting en DesdeLinux puedes hacer clic en el siguiente enlace. Y si te da curiosidad ver la aplicaciĂłn que estoy desarrollando con Bash puro, te recomiendo ir a mi Canal de YouTube y ver los vĂdeos sobre el Linux Post Install – Script de OptimizaciĂłn Automatizada (LPI-SOA).

Resumen
En resumen, «Xonsh» es una genial herramienta de software para terminales (CLI). Qué además, es extremadamente útil para aquellos amantes de hacer scripts o practicar Shell Scripting, no solo sobre Bash sino sobre Python, entre otros (Zsh, Fish, y Plumbum). Por ende, esperemos que tan interesante herramienta siga desarrollándose en beneficio de los apasionados usuarios de GNU/Linux, y el Terminal.
Esperamos que esta publicaciĂłn, sea de mucha utilidad para toda la «Comunidad de Software Libre, CĂłdigo Abierto y GNU/Linux». Y no dejes de comentarla más abajo, y de compartirla con otros en tus sitios webs, canales, grupos o comunidades favoritas de redes sociales o sistemas de mensajerĂa. Por Ăşltimo, visita nuestra página de inicio en «DesdeLinux» para explorar más noticias, y Ăşnete a nuestro canal oficial de Telegram de DesdeLinux.
