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 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.
path join path join
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
,wherewhereyselectselectoperan sobre columnas con tipos definidos.sort-bysort-by - 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.
scoop install nubrew install nushellnix profile add nixpkgs#nushell
Tras instalar, inicia en tu terminal para usar Nushell. Puedes configurar tu
shell por defecto o integrar nu 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 nu 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.
let scripts_path = "dibs/scripts-nushell"
mkdir $scripts_pathdibs/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
: define una variable local. A diferencia de PowerShell, no se usaletletal declarar, solo al referenciarla en expresiones o comandos. Por ejemplo,$$crea la variable y luegolet path = 'dibs/scripts-nushell'let path = 'dibs/scripts-nushell'la usa.$path$path -
crea directorios, igual quemkdirmkdiren 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.New-Item -ItemType DirectoryNew-Item -ItemType Directory
Rutas portables con path join path join
path join path join
En Nushell, la forma recomendada de construir rutas es usando : concatena
segmentos de ruta de manera portátil, evitando errores por separadores distintos entre sistemas
(path join path join / en Unix, \ en Windows). En scripts (.nu) preferimos
por claridad y portabilidad, igual que path join path join .
Join-Path Join-Path
let scripts_path = (["dibs", "scripts"] | path join) 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 — esperan recibir datos desde él. En las próximas
lecciones veremos en detalle cómo fluye la información entre comandos.
path join path join
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.
| 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. |
- 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.
- 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.