Explorando Nushell, un shell multiplataforma impulsado por Rust

Share on X (Twitter)Share on FacebookShare on LinkedInShare on Email

Nushell es un shell moderno y multiplataforma desarrollado con Rust. Ofrece un alto rendimiento, es extensible con plugins y tiene una apariencia moderna en comparación con shells tradicionales como Bash, PowerShell y Zsh.

En este artículo, repasaremos Nushell, exploraremos sus ventajas y desventajas, cómo instalarlo y cómo empezar a escribir scripts en Nushell. ¡Comencemos!

Table
  1. Descripción general de Nushell
  2. Beneficios de usar Nushell
  3. Instalación de Nushell
  4. Scripting en Nushell
    1. Ejecución de scripts de Nushell
    2. Creación y uso de variables
    3. Creación de comandos personalizados en Nushell
  5. Conclusión

Descripción general de Nushell

Nushell es un shell de línea de comandos como Bash, PowerShell, Símbolo del sistema y Zsh. Es multiplataforma y se instala fácilmente en cualquier sistema operativo. La mayoría de los comandos de Zsh y Bash también funcionan en Nushell.

¿Qué es DesignOps? Conceptos básicos de DesignOps

De fábrica, si vienes de shells tipo Unix como Bash, no notarás un cambio sustancial en los comandos que ya usas. Sin embargo, algo que sí notarás son las salidas de algunos comandos, en particular los que muestran información estructurada.

Veamos un ejemplo de Nushell en acción:

Nushell se centra en aceptar, mostrar y trabajar con datos estructurados. Si escribiera el lscomando en un shell tradicional (Zsh, en este ejemplo), obtendría algo como esto:

Estos ejemplos muestran la diferencia que supone este énfasis. Zsh solo muestra los archivos del directorio, mientras que Nushell muestra una tabla de archivos. Al usar la tabla, Nushell también puede mostrar sobre cada archivo.

Una guía para realizar una revisión posterior a la acción (AAR) eficaz

lsEs uno de los comandos de Nushell que procesa datos estructurados y los presenta en una tabla. Nushell introduce un opencomando que lee un archivo y muestra su contenido en formato tabular si dicho archivo contiene datos estructurados.

Si ejecuta el comando, obtendrá una tabla que representa el contenido:open Cargo.toml

A partir de ahora, opensolo se pueden procesar archivos con los siguientes formatos de archivo: CSV, EML, ICS, INI, JSON, Nuon, ODS, SQLite, SSV, TOML, TSV, URL, VCF, XLSX o XLS, XML y YAML o YML.

Al igual que los shells tradicionales, Nushell permite transmitir la salida de un comando a otro en Nushell mediante un |carácter de canalización. Veamos este ejemplo:

¿Qué es un pivote en los negocios? Estrategias e implicaciones

En este ejemplo, transmitimos la lssalida del comando al reversecomando con el |carácter de canalización. lsencuentra los archivos y carpetas en el directorio de trabajo actual y los muestra en una tabla. reverselee una tabla desde una secuencia e invierte el orden en el que aparecen sus filas.

Podemos hacer lo mismo para el opencomando:

Beneficios de usar Nushell

Ahora que hemos visto Nushell, es importante conocer sus beneficios. Entre ellos se encuentran:

  • Nushell es uno de los únicos shells que le permite especificar estructuras de datos y tipos de datos.
  • Nushell le permite crear, instalar y desinstalar complementos fácilmente
  • Nushell es fácil de usar y comprender. Además, cuenta con una documentación detallada donde encontrará toda la información necesaria.
  • Las canalizaciones de Nu utilizan datos estructurados para que puedas seleccionar, filtrar y ordenar de forma segura y siempre de la misma forma. Así, no necesitas dedicar tiempo extra a escribir scripts para analizar cadenas.

Si bien Nushell ofrece estos beneficios, es importante considerar que es nuevo en comparación con Bash, PowerShell y muchos shells tradicionales. Nushell no cuenta con el mismo apoyo ni adopción de la comunidad que los shells tradicionales.

Rasgos de liderazgo esenciales para los gerentes de producto modernos

Instalación de Nushell

Ahora, veamos cómo puedes instalar Nushell en tu sistema.

El primer método consiste en descargar los binarios precompilados . Con este método, solo necesita instalar las dependencias de Nushell . Una vez descargados los binarios, agréguelos a la ruta del entorno de su sistema para ejecutarlos directamente en su terminal.

Otro método es a través del administrador de paquetes de su sistema operativo , npmel administrador de paquetes de Node o el administrador de paquetes Cargo de Rust .

Nushell está disponible en muchos gestores de paquetes. Encontrará Nushell como nuo nushellen el gestor de paquetes. Por ejemplo, aquí hay algunos comandos de instalación comunes:

  • administradores de paquetes de Windows
    • Ala:winget install nushell
    • Chocolate:choco install nushell
    • Cuchara:scoop install nu
  • Homebrew de macOS:brew install nushell
  • npm de Node.js:npm install -g nushell
  • Carga de óxido:cargo install nu

A partir de ahora, Nushell solo es compatible con estos administradores de paquetes:

Una vez que haya instalado Nushell en su sistema, ejecute este comando en su terminal para activar el shell:

nuevo

Cuando ejecute el comando, debería ver un mensaje de introducción seguido del símbolo del sistema, similar a esta imagen:

Puedes usar la mayoría de los comandos que ya usas en shells tradicionales, y algunos adicionales, justo después de instalar Nushell. Si quieres ver todos los comandos que Nushell ya te permite usar, consulta la referencia de comandos de Nushell .

Scripting en Nushell

Como la mayoría de los shells tradicionales, Nushell tiene su propio lenguaje de scripting llamado Nu. Nu le permite automatizar tareas y escribir scripts.



En esta sección, cubriré algunas funciones básicas que puedes hacer con Nushell, como ejecutar scripts de Nushell, crear y usar variables, y crear y trabajar con comandos personalizados.

Ejecución de scripts de Nushell

Hay dos formas de ejecutar scripts de Nushell:

  1. El nucomando
  2. Un asunto pendiente#!

Para ejecutar el archivo con el nucomando, solo tiene que escribir el comando seguido del nombre del archivo. Por ejemplo:

Hola . Hola .

La extensión de archivo para los scripts de Nushell es ..nu

Los shebangs son otra forma de ejecutar scripts en sistemas tipo Unix. Solo tienes que añadir un shebang que apunte al intérprete en la primera línea del script. Por ejemplo:

#!/usr/bin/env nu echo "Hola, mundo"# ... resto del script

Luego, haga que el archivo sea ejecutable con el chmodcomando:

chmod + x hola

Luego podrás ejecutar el archivo directamente en la terminal:

./ Hola

Creación y uso de variables

En Nushell, hay tres tipos de variables que puedes definir: variables mutables, inmutables y constantes.

Las variables mutables pueden cambiar durante la ejecución del script después de declararlas. Para declarar una variable mutable, use la mutpalabra clave:

mut num1 = 5 mut num2 = 7 $num1 += 1 $num1 + $num2        # salida - 13    

Las variables inmutables no pueden cambiar después de declararlas. Intentar modificarlas generará un error. Para declarar una variable inmutable, se debe usar la palabra clave:needs to be a mutable variablelet

sea ​​num1 = 5 sea num2 = 7 # "$num1 += 1" resultaría en un error   $num1 + $num2         # salida - 12 

Las variables constantes son similares a las inmutables. La diferencia entre ellas radica en que contienen variables ya determinadas antes de la ejecución del script. Para declarar una variable mutable, utilice la constpalabra clave:

constante num1 = 5 constante num2 = 7 $num1 + $num2  

Nushell también permite ejecutar subexpresiones y trabajar con sus resultados. Veamos este ejemplo:

dejar archivos = ( cd hola - mundo ; abrir Cargo . toml ) $archivos 

Las subexpresiones se encierran entre paréntesis (). En el código anterior, el resultado de la subexpresión se guarda en la filesvariable, lo que nos permite trabajar con ella. Los comandos de una subexpresión deben separarse mediante pipelines |, punto y coma ;o la andpalabra clave.

Tenga en cuenta que solo las variables mutables e inmutables pueden contener valores de subexpresiones. Esto se debe a que las constantes requieren que sus valores se determinen antes de ejecutar el script, pero los valores de las subexpresiones no pueden determinarse antes de ejecutar el script.

Creación de comandos personalizados en Nushell

Los comandos personalizados en Nushell son similares a las funciones y subrutinas en los lenguajes de programación y en los shells tradicionales.

La sintaxis para crear un comando personalizado es la siguiente:

def command_name [ arg1 , arg2 ] { # tareas del   comando " valor de retorno" }    

Después de definir el comando personalizado, la forma de llamarlo es la siguiente:

nombre_comando arg1 arg2

Veamos un ejemplo sencillo:

def coma [ txt1 , txt2 ] {   $txt1 + ", " + $txt2 } coma "Hola" "mundo" # salida - Hola , mundo        

En este ejemplo, creamos un comando llamado coma usando la sintaxis anterior. El comando une dos cadenas con una coma y un espacio ", ". Al ejecutar el comando con "Hello"argumentos "world"de cadena y, el resultado es "Hello, world".

Para comandos sin ningún parámetro, siga este formato:

def command_name [] { # las tareas del   comando " devuelven valor" }   

Puedes llamar al comando anterior de la misma manera que llamarías a cualquier otro comando:

nombre_del_comando

Nushell también le permite especificar tipos de datos de parámetros, especificar valores predeterminados para los parámetros y hacer que ciertos parámetros sean opcionales en sus comandos personalizados.

Para especificar los tipos de datos de los parámetros, añada dos puntos :seguidos del tipo de dato que desea que tenga el parámetro. Por ejemplo:

def add [ num1 : int , num2 : int ] {   $num1 + $num2 }   añadir 1 2 # salida - 3         

Al momento de escribir este artículo, Nushell está en la versión v0.86.0 y solo admite 21 tipos de datos: any, binary, bool, , , , , , , , , , , , , , , , , , , y .cell-pathclosuredatetimedirectorydurationerrorfilesizefloatglobintlistnothingnumberpathrangerecordstringtable

Pasar un tipo incorrecto a uno de los parámetros generará un error. Veamos qué sucede si ejecutamos :add 1 "2"

Para especificar un valor predeterminado para un parámetro, añada el =signo igual seguido del valor predeterminado después del parámetro. Por ejemplo:

def add [ num1 : int , num2 = 0 ] {   $num1 + $num2 }   añadir 1 2 # salida - 3 añadir 1 # salida - 1               

En este código, si no se especifica un valor para el num2parámetro, este se convierte 0en el valor predeterminado. Esto nos da una salida de 1.

Conclusión

En este artículo, analizamos diversos aspectos de Nushell. Analizamos brevemente Nushell y sus beneficios, y luego explicamos el proceso de configuración y la programación básica en Nu, su lenguaje de programación.

Al comparar Nushell con Bash, Zsh y PowerShell, es importante considerar si su proyecto se beneficiaría de las fortalezas de Nushell o requiere características ofrecidas en otros shells.

Por ejemplo, Nushell prioriza la aceptación, visualización y trabajo con datos estructurados. Sin embargo, algunas tareas que implican la manipulación de grandes cantidades de datos pueden consumir muchos recursos del sistema.

Además, aunque Nushell está escrito en Rust, lo que ofrece ventajas de rendimiento y eficiencia, las tareas que consumen muchos recursos los consumirán independientemente de los beneficios que obtengan de Rust. Debería considerar alternativas como bash o zsh para dichas tareas, especialmente si su tarea no se beneficia de la estructuración de datos de Nushell.

Si buscas una mayor capacidad de personalización, Nushell es uno de los shells más personalizables por defecto. Shells como Zsh y Bash ofrecen una personalización limitada de fábrica, pero ambos cuentan con frameworks impulsados ​​por la comunidad que ofrecen una personalización similar a la de Nushell.

Por último, Nushell no puede reemplazar shells de línea de comandos como PowerShell. Estos shells suelen ofrecer una integración mejorada con servicios y sistemas, algo que no es tan fácil de conseguir con otros shells de línea de comandos. PowerShell, por ejemplo, está profundamente integrado con los servicios de Microsoft y el sistema operativo Windows.

Aunque Nushell es un shell relativamente nuevo, es potente, extensible y ofrece una interfaz de usuario completa en comparación con la mayoría de los shells tradicionales. Espero que con este artículo obtenga una comprensión más profunda de Nushell.

Depurar aplicaciones Rust puede ser difícil, especialmente cuando los usuarios experimentan problemas difíciles de reproducir. Si te interesa supervisar y monitorizar el rendimiento de tus aplicaciones Rust, detectar errores automáticamente y monitorizar las solicitudes de red lentas y el tiempo de carga, prueba LogRocket .

Modernice su forma de depurar sus aplicaciones Rust: comience a monitorearlas de forma gratuita .

Si quieres conocer otros artículos parecidos a Explorando Nushell, un shell multiplataforma impulsado por Rust puedes visitar la categoría Guias.

Entradas Relacionadas