Terminal für Windows, Linux und macOS Nushell – Befehlszeile für Entwickler

Von Thomas Joos 4 min Lesedauer

Anbieter zum Thema

Nushell ist ein Command Line Interface für Windows, Linux und macOS, das Autovervollständigung und andere Funktionen aus der Softwareentwicklung bietet. Wir zeigen in diesem Beitrag die Möglichkeiten.

Nu bietet umfangreiche Bilder und automatisch strukturierte Anzeigen der Daten.
Nu bietet umfangreiche Bilder und automatisch strukturierte Anzeigen der Daten.
(Bild: Joos / Nushell)

Nushell ist eine mächtige Open Source-Kommandozeile auf Basis von Rust unter der MIT-Lizenz. Es vereint zahlreiche Vorteile und Möglichkeiten aus der Linux-Bash, dem macOS-Terminal, der PowerShell und der Windows-Befehlszeile. Dazu kommen Techniken aus der Softwareentwicklung und objektorientierten Ansätzen.

Von der Bedienung her orientiert sich Nushell vor allem an der PowerShell und der Linux-Bash. Das heißt, Pipeline-Funktionen sind in der Nushell genauso möglich wie in der PowerShell und bei der Unix-Philosophie. Einfache Befehle können dadurch in einer Kette zu mächtigen Abläufen genutzt werden, deren Ergebnis in Nushell automatisch als Tabelle angezeigt werden.

Moderne Shell für Windows, Linux und macOS

Die Shell funktioniert unter Linux, Windows und macOS, sodass Admins und Entwickler betriebssystemübergreifend mit der Shell arbeiten können. Wer mit mehreren Betriebssystemen arbeitet, kann daher mit der Nushell auf jedem System die gleichen Abläufe nutzen. Nushell-Programme und Skripte sind also portabel.

Die Nushell stellt eine ergänzende Shell für Windows, Linux und macOS zur Verfügung.
Die Nushell stellt eine ergänzende Shell für Windows, Linux und macOS zur Verfügung.
(Bild: Joos / Nushell)

Nushell lässt sich parallel zu den vorhandenen Shells des Betriebssystems betreiben. Durch die Eingabe von „nu“ startet die Nushell in Windows, Linux und macOS direkt aus dem Terminal, der PowerShell, der Eingabeaufforderung oder der Bash heraus.

Die Nushell arbeitet strukturiert, sodass die Ausgabe und die verwendeten Daten, nicht nur als Text angezeigt, sondern strukturiert aufgearbeitet werden. Das heißt, alle Ausgaben versucht Nushell in einer Tabelle aufzubereiten. In der umfassenden Dokumentation zur Nushell zeigen die Entwickler alle Möglichkeiten der Shell in der Praxis.

Nushell unterstützt Plug-ins, sodass Entwickler den Funktionsumfang selbst erweitern können. Für den Einsatz ist es nicht notwendig, Nushell als Standard-Shell zu verwenden.

Eigene Autovervollständigung und Parameter integrieren

Mit der Nushell können Entwicklerinnen und Entwickler die integrierte Autovervollständigen-Funktion in der Shell selbst erweitern. Parameter, Optionen und Argumente lassen sich dadurch flexibel mit Befehlen kombinieren. Die Integration von externen Befehlen in Nushell ist ebenfalls möglich.

Die Konfiguration der Shell erfolgt über eine Config-Datei, die bei der Installation eingerichtet wird, aber jederzeit angepasst wird. Interessant sind an dieser Stelle das Hervorheben der Syntax und das Erkennen von Fehlern – so, wie das Entwickler aus Quell-Code-Editoren wie Visual Studio Code kennen.

Visual Studio Code bietet bei Bedarf ähnliche Funktionen für die PowerShell. Die Nushell aber kann diese Techniken auch in Windows-Befehlszeile, Bash und macOS-Terminal bringen – und das in Windows, Linux und macOS.

Nushell installieren und nutzen

Die Installation der Nushell erfolgt in Windows über „winget install nushell“ oder „choco install nushell“, in Linux und macOS kann die Installation zum Beispiel über Homebrew („brew install nushell“) erfolgen. Die Installationsdateien der Nushell stehen aber auch auf GitHub zur Verfügung. Die aktuell installierte Version der Nushell lässt sich mit „nushell --version“ anzeigen.

Nu bietet umfangreiche Bilder und automatisch strukturierte Anzeigen der Daten.
Nu bietet umfangreiche Bilder und automatisch strukturierte Anzeigen der Daten.
(Bild: Joos / Nushell)

Nach der Installation steht Nushell auf dem System zur Verfügung kann durch Eingabe des Befehls „nu“ gestartet werden. Mit „exit“ schließt sich die Shell wieder. Es ist daher problemlos möglich parallel mit den vorhandenen Shells des Betriebssystems zu arbeiten mit Nushell für bestimmte Zwecke. Nach dem Start der Shell stehen die verschiedenen Befehls zur Verfügung, die im Grunde auch in der Linux-Bash verfügbar sind.

Durch die verschiedenen Filter und Pipeline-Funktionen können in der Nushell auch komplexere Abfragen erstellt werden. Um zum Beispiel alle Dateien mit einer Größe ab 5 MB sortiert nach dem Datum der Änderung anzuzeigen, kann ein einfacher Befehl genutzt werden:

ls | where size > 5mb | sort-by modified

Nushell lässt sich auch zum Abrufen von Befehlen zur Abfrage von Systeminformationen und der Auslastung der Hardware nutzen.
Nushell lässt sich auch zum Abrufen von Befehlen zur Abfrage von Systeminformationen und der Auslastung der Hardware nutzen.
(Bild: Joos / Nushell)

Der Befehl zeigt anschließend alle Dateien, die der Abfrage entsprechen in einer Tabelle an und formatiert die Ausgabe auch grafisch. Mit der Nushell lassen sich auch Prozesse abfragen. Soll die Nushell zum Beispiel alle Prozesse anzeigen, die eine CPU-Last von über 5% verursachen und die höchsten Werte zuerst anzeigen, kann der folgende Befehl genutzt werden:

ps | where cpu > 5 | sort-by cpu |reverse

Nushell als Programmierumgebung nutzen

Neben den flexiblen Kommandozeilen-Möglichkeiten Nushell dem Programmieren mit der Sprache Nu dienen. Beim Coden mit Nushell lassen sich eigene Aliase und Funktionen definieren. Operatoren stehen ebenfalls zur Verfügung. Ergebnisse von Abfragen lassen sich in Variablen speichern und mit Unterroutinen und Unterausdrücken auswerten.

Jetzt Newsletter abonnieren

Täglich die wichtigsten Infos zu Softwareentwicklung und DevOps

Mit Klick auf „Newsletter abonnieren“ erkläre ich mich mit der Verarbeitung und Nutzung meiner Daten gemäß Einwilligungserklärung (bitte aufklappen für Details) einverstanden und akzeptiere die Nutzungsbedingungen. Weitere Informationen finde ich in unserer Datenschutzerklärung.

Aufklappen für Details zu Ihrer Einwilligung

Natürlich ist es auch möglich, Skripte mit Nushell zu schreiben. Module ermöglichen es in Nushell, ähnlich wie in der PowerShell, Code aus kleineren Teilen zusammenzusetzen. Mit Modulen können Entwickler eine öffentliche Schnittstelle definieren und benutzerdefinierte Befehle, Aliase und Umgebungsvariablen importieren.

Mit Aliasen in Nushell arbeiten.
Mit Aliasen in Nushell arbeiten.
(Bild: Joos / Nushell)

Overlays bauen auf den Modulen auf. Aliase bieten eine Möglichkeit, ganze Befehle samt Parameter und Optionen zu ersetzen. Damit können Entwickler einen Kurznamen für einen längeren Befehl erstellen, einschließlich seiner Standardargumente:

alias ll = ls -l

Sobald in diesem Beispiel „ll“ eingegeben wird, verhält sich Nushell so, als ob „ls -l“ eingegeben wurde. Das ermöglicht wiederum die Übergabe von Flags oder Positionsparametern. Zum Beispiel:

ll -a

und erhalten das Äquivalent zur Eingabe von ls -l -a.

Wenn bei der Arbeit mit einem Alias eine Pipe zum Einsatz kommen soll, geht das über die Verwendung von Klammern:

alias lsname = (ls | get name)

Hier ist ein Alias mit mehr als einer Pipe:

alias lt = (ls | sort-by modified -r | sort-by type)

Die verwendbaren Aliase können mit …

$nu.scope.aliases

… angezeigt werden. Durch die Definition eines Overlays lassen sich Module zwischen Overlays verknüpfen. Dadurch lassen sich virtuelle Umgebungen definieren, eigene Befehle erstellen oder Aliase nutzen. Benutzerdefinierte Befehle ermöglichen es, dass Entwickler Ergebnisse speichern und diese für weitere Befehle nutzen können. Die Möglichkeiten dazu sind in der Dokumentation auf „Programming in Nu“ zu finden.

(ID:49200986)