Introducción a Nushell

Abstract

En esta lección conocerás Nushell, un shell moderno que comparte la filosofía de PowerShell, pero con un enfoque más simple y orientado a datos tabulares. A diferencia de los shells tradicionales basados en texto, Nushell utiliza registros y tablas tipadas como unidad de información, lo que permite construir pipelines claros, portables y fáciles de razonar.

Aprenderás cómo instalarlo, crear tu primer entorno de trabajo y comprender sus conceptos básicos: variables, directorios, y el uso de path join para construir rutas de forma segura y multiplataforma. Finalmente, compararemos Nushell con PowerShell para identificar en qué casos conviene usar cada uno —ya sea para automatizar tareas del sistema o para trabajar con datos estructurados de manera eficiente.

Nushell: ¿qué es y cómo instalarlo?

¿Qué es Nushell?

Nushell es un shell moderno orientado a datos estructurados. En lugar de pasar texto plano por la tubería, Nushell trabaja con tablas de registros tipados (filas y columnas). Este enfoque hace más simple y seguro filtrar, transformar y combinar información proveniente de archivos, APIs o comandos externos. Su sintaxis es concisa, declarativa y coherente entre plataformas.

Características clave

  • Pipeline estructurada: comandos como where , select y sort-by operan sobre columnas con tipos definidos.
  • Formatos de datos: lectura y escritura directa de JSON, CSV, TOML, YAML, Parquet y otros formatos comunes.
  • Multiplataforma: funciona en Windows, macOS y Linux.

Para instalar Nushell, existen varios métodos según tu sistema operativo. A continuación se muestran las opciones de instalación usando los gestores de paquetes que utilizamos en el curso.

Tras instalar, inicia nu en tu terminal para usar Nushell. Puedes configurar tu shell por defecto o integrar nu como intérprete dentro de tu editor (por ejemplo, VS Code) sin reemplazar tu shell actual. Puedes probar un comando sin cambiar de shell con nu -c 'ls | where type == file'.

Estructura base del «workspace»

Igual que en PowerShell, crea un workspace base para tus scripts. En Nushell la sintaxis es directa y orientada a datos; aquí generas la carpeta base.

Desde la terminal de Nushell
let scripts_path = "dibs/scripts-nushell"
mkdir $scripts_path
Crea el directorio dibs/scripts-nushell si no existe. En Nushell, los comandos no requieren redirección a null: no muestran salida si no la usas en un pipeline.

¿Qué acabamos de hacer?

  • Asignación con let : define una variable local. A diferencia de PowerShell, no se usa $ al declarar, solo al referenciarla en expresiones o comandos. Por ejemplo, let path = 'dibs/scripts-nushell' crea la variable y luego $path la usa.
  • mkdir crea directorios, igual que New-Item -ItemType Directory en PowerShell. Si el directorio ya existe, Nushell simplemente lo ignora sin error. También puedes encadenarlo con otros comandos en pipelines, aprovechando su naturaleza estructurada.

Rutas portables con path join

En Nushell, la forma recomendada de construir rutas es usando path join : concatena segmentos de ruta de manera portátil, evitando errores por separadores distintos entre sistemas (/ en Unix, \ en Windows). En scripts (.nu) preferimos path join por claridad y portabilidad, igual que Join-Path .

Ejemplo de uso
let scripts_path = (["dibs", "scripts"] | path join)
path join devolverá dibs/scripts o dibs\scripts según el sistema operativo.

Aún no hemos visto cómo funciona el pipeline en Nushell; por ahora basta con entender que muchos comandos —como path join — esperan recibir datos desde él. En las próximas lecciones veremos en detalle cómo fluye la información entre comandos.

Nushell vs PowerShell: ¿cuándo usar cada uno?

En esta tabla resumimos cuándo puede convenir usar Nushell frente a PowerShell (y viceversa). No se trata de sustituir uno por otro, sino de entender sus ámbitos de fuerza para elegir la herramienta más adecuada para un script o entorno concreto.

Comparativa rápida entre Nushell y PowerShell
Aspecto Nushell PowerShell
Paradigma de datos Trabaja con registros/tablas tipadas, ideal para procesar JSON, YAML, CSV. Objetos .NET en pipeline; ideal para automatización del sistema.
Sistema operativo Cross-platform nativo; enfoque moderno. Cross-platform; fuerte herencia en Windows/infraestructura Microsoft.
Ecosistema/módulos Ecosistema emergente; menos módulos que PowerShell. Ecosistema maduro, amplísima disponibilidad de módulos y extensiones.
Curva de aprendizaje y estilo Sintaxis concisa orientada a datos; requiere adaptarse al pipeline. Sintaxis verbosa ("Verb-Noun"); muy documentada y familiar para administradores Windows.
Resumen Ideal para manipulación de datos estructurados y scripts multi-OS. Ideal para automatización de sistemas Windows/.NET y acceso a APIs del sistema.
Cuándo considerar Nushell
  • Procesamiento de formatos de datos modernos (JSON, YAML, CSV) como tabla sin invocar múltiples herramientas externas.
  • Entorno cross-platform ligero y rápido, adecuado para desarrolladores que trabajan en macOS, Linux y Windows.
  • Pipelines de datos más intuitivos, evitando tantos hacks de parsing de texto.
Limitaciones a tener en cuenta
  • Ecosistema aún menos maduro que PowerShell: pueden faltar módulos específicos, integraciones con infraestructuras legacy.
  • Cambios frecuentes en versiones tempranas pueden introducir rupturas; quizá menos estable para scripts críticos de infraestructura.
  • Si ya tienes un fuerte dominio de PowerShell y dependes de muchos módulos Windows/.NET, migrar a Nushell puede requerir reescritura o adaptación de flujos.

En definitiva: si tu trabajo gira en torno a automatización de sistemas Windows con módulos .NET y acceso a APIs del sistema, PowerShell sigue siendo la opción más robusta. Si en cambio tu foco es la manipulación de datos estructurados, pipelines limpios y entornos multi-OS, Nushell merece una mirada —incluso puedes usar ambos según el contexto.

Conclusiones

Nushell puede entenderse como un heredero simplificado de la filosofía de PowerShell. Ambos rompen con el modelo tradicional de texto plano y adoptan estructuras de datos tipadas que viajan por el pipeline. Mientras PowerShell se apoya en el ecosistema .NET y un modelo orientado a objetos completo, Nushell propone una abstracción más ligera y accesible basada en tablas de registros. Esto lo hace más directo para tareas de análisis, filtrado y transformación de datos sin necesidad de manipular jerarquías de objetos complejas.

En esta lección vimos que Nushell no busca reemplazar a PowerShell, sino ofrecer una alternativa más minimalista y coherente entre plataformas. Si PowerShell es ideal para automatización de sistemas y acceso a APIs, Nushell destaca en exploración de datos y scripting rápido, especialmente en entornos mixtos o multiplataforma.

Puntos clave

  • Nushell usa tablas tipadas como modelo de datos, simplificando operaciones sobre archivos, APIs y pipelines.
  • PowerShell ofrece un modelo más poderoso basado en objetos .NET, adecuado para automatización e integración profunda con el sistema.
  • Ambos son multiplataforma, pero Nushell ofrece una experiencia más liviana y consistente fuera del ecosistema Microsoft.
  • Elegir uno u otro depende del enfoque: Nushell para scripting simple y análisis de datos, PowerShell para tareas de administración y automatización complejas.

¿Qué nos llevamos?

Comprender Nushell como una versión más simple de PowerShell permite apreciar su propósito: hacer que el trabajo con datos sea más directo y expresivo sin perder seguridad ni tipado. Representa un paso hacia shells más declarativos, donde los datos son ciudadanos de primera clase y las operaciones se describen con claridad y consistencia.

Más allá de las diferencias técnicas, Nushell invita a repensar cómo escribimos scripts: priorizando la claridad, la estructura y la portabilidad sobre la complejidad. Su adopción temprana puede fomentar una forma de scripting más moderna y consciente del contexto, integrando ideas de PowerShell sin su peso conceptual.