Nushell (Kurzform nu) ist eine moderne, in Rust geschriebene Shell, die mit strukturierten Daten statt rohen Text-Streams arbeitet. Statt Zeichenketten durch die Pipeline zu schieben, transportiert sie typisierte Werte – Listen, Records und Tabellen. Ausgabe und Weiterverarbeitung bleiben damit konsistent, ohne aufwendiges Parsen wie bei klassischen Shells.

Erste Schritte

Installation und Start sind unkompliziert, danach liefert bereits ls eine echte Tabelle:

nu
> ls | where size > 1kb | sort-by name

Strukturierte Formate liest open direkt: open config.json | get server.port. Konvertiert wird mit from json/from csv/from yaml und to json.

Die wichtigsten Nushell-Kommandos

  • ls, open, get, select – Daten lesen und Spalten wählen
  • where, sort-by, group-by – filtern, sortieren, gruppieren
  • each, par-each – Zeilen parallel verarbeiten
  • into – Typkonvertierungen (into int, into datetime)
  • str, math, path – String-, Zahlen- und Pfadoperationen
  • describe – Typ eines Werts anzeigen
  • let/mut, $env, $nu – Variablen und Umgebung

Konfiguration

Die Startdateien liegen unter ~/.config/nushell/config.nu und env.nu; Aliase, Keybindings und Prompt werden dort deklariert. Auch klassische Unix-Befehle lassen sich weiterhin aufrufen – Nushell versteht deren Textausgabe, wandelt sie aber bei bekannten Kommandos in Tabellen um.

Praxis-Tipps

  • Für Systemadministration und Datenauswertung spart Nushell das Zusammensetzen von grep/awk-Ketten
  • Skripte enden auf .nu, Ausführung mit nu skript.nu oder nu -c '<befehle>'
  • Die Inspiration kommt von der PowerShell – wer PowerShell gewohnt ist, findet sich schnell zurecht

Verwandte Grundlagen: PowerShell, Bash, Python, grep, SSH/SCP/rsync, YAML, TOML und JSON. Für regelbasierte XML-Transformationen ist XSLT zuständig, interaktive Programme automatisiert Expect.