Xonsh: Lenguaje de Shell y Prompt de comandos multiplataforma

Xonsh: Lenguaje de Shell y Prompt de comandos multiplataforma

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.

Shell Scripting

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

Artículo relacionado:
Recursos y utilitarios en línea para aprender Shell Scripting

Artículo relacionado:
Construye paso a paso tu programa utilizando Shell Scripting – Parte 1

Xonsh: Shell para Bash, Python y más

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:

  1. Permite combinar comandos de (Bash) Shell con Python o viceversa.
  2. 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.
  3. 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.
  4. 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:

  1. Adicción de la unión de las teclas CTRL-Derecha para completar una sola palabra de autosugestión.
  2. Visualización del tipo y la descripción de las variables de entorno al completarlas.
  3. Mejoramiento del completador de pip/xpip.
  4. 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

Pantallazo 1

Ejecución de la Shell de Xonsh

Pantallazo 2

Pantallazo 3

Ejemplos comandos de Bash

Xonsh: Pantallazo 4

Xonsh: Pantallazo 4

Ejemplos de comandos de Python

Xonsh: Pantallazo 5

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: Banner post 2021

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.


El contenido del artículo se adhiere a nuestros principios de ética editorial. Para notificar un error pincha aquí.

Sé el primero en comentar

Deja tu comentario

Tu dirección de correo electrónico no será publicada.

*

*

  1. Responsable de los datos: Miguel Ángel Gatón
  2. Finalidad de los datos: Controlar el SPAM, gestión de comentarios.
  3. Legitimación: Tu consentimiento
  4. Comunicación de los datos: No se comunicarán los datos a terceros salvo por obligación legal.
  5. Almacenamiento de los datos: Base de datos alojada en Occentus Networks (UE)
  6. Derechos: En cualquier momento puedes limitar, recuperar y borrar tu información.

bool(true)