Nushell
Inhalt
Nushell⌗
Die Nushell
ist eine neue shell, die noch in der Entwicklung ist.
Sie ist in rust geschirben und implementiert neue und moderne Konzepte,
die andere shells, die es teilweise seit Jahrzehnten gibt, nicht haben.
Vorteile⌗
Die Nushell betrachtet die Informationen, die aus dem System ausgelesen werden,
nicht nur als Strings, sondern erkennt auch die Zusammenhänge der Daten.
Das ist besonders nützlich, da man sich mit dem Terminal in den reinen Daten
bewegt, ergibt es sehr viel Sinn sie auch sinnvoll und zusammenhängend darzustellen.
Das passiert vornehmlich in Tabellen. Und diese Tabellen lassen sich auch im Tabellenfromat
Modifizieren. Dadurch sind die Grundlagen der Datenanalyse und weiterverabreitung ohne
weitere Werkzeuge vom Terminal möglich (Visualisierung, Extrapolierung, Bereinigung).
Wichtig zu beachten ist auch, dass sich das nicht nur auf ohnehin schon tabellarische
Dateiformate anwenden lässt. Es werden stetig neue Formate (bzw. ihre “Übersetzungen”)
hinzugefügt. Im Moment werden die Formate [csv, eml, ics, ini, json, nuon, ods, SQLite, ssv, toml, tsv, url, vcf, xlsx/xls, x,l, yaml/yml]
unterstützt. Geöffnet werden die Dateien
mit dem open
Befehl.
Hier habe ich beispielhaft eine Toml Datei geöffnet (die Cargo.toml eines Rust Projekts).
Ich habe dabei das zusätzliche Argument table -e
verwendet, um die Tabellen in einer Tabelle
darzustellen. Sonst hätte sie shell nur die Kategorien angezeigt, oder ich hätte spezifizieren müssen, welche Kategorie ich sehen möchte (hier dependencies
, oder package
).
Bemerkenswert ist hier auch die Verwendung des |
Operators. Im Grunde genommen funktioniert
er wie bei anderen shells auch. Er leitet den Output des ersten Befehls, in stdin
des nächsten
Befehls weiter. So werden auch dort Daten weiter verarbeitet. Aber wie gesagt, in der nushell
sind Daten nicht einfach nur Daten, sie haben (meist) auch einen Zusammenhang. Also kann man
auch Tabellen weiter verarbeiten.
Hier nehme ich ls -l
(also den langen output von ls), und gmodifiziere dann die Tabelle weiter.
So kann ich mir die Daten so anzeigen lassen, das ich sie schnell überblicken kann.
Ich filtere zum Beispiel die Gruppe, der die Datein gehört aus. Eine weitere Option ist
save
, mit der man die angezeigten Daten dann auch in einer Datei sichern kann.
Die Arbeit mit Tabellen, die in der shell möglich ist würde den Rahmen dieses Posts sprengen.
Unter anderem auch, weil laufen neue Hinzugefügt werden. Daher empfehle ich es einfach mal
selbst die Dokumentation zu lesen, oder die shell auszuprobieren. Sie kann nämlich mit cargo
installiert werden, und ist somit auch cross plattform.
Konfiguration⌗
Beim Konfigurieren der shell bin ich auf einige kleine Widerstände gestoßen, dessen Löungen ich hier zeigen werde, damit keiner von den werten Lesern sich mit ihnen herumschlagen muss.
# Umgebungsvariablen legt man mit
let-env PATH = ($env.PATH | split row (char esep) | append '/home/lovis/.cargo/bin/')`
# fest.
# Befehle, die man beim Starten der shell ausführen möchte, schreibt man einfach
# in die config.nu Datei
sh +/scripts/todoscript.sh -l
# Aliase werden in diesem Format definiert:
alias bye = shutdown -P now
52posts⌗
Dieser Beitrag ist Teil meines Plans, in 2023 jede Woche einen Post zu erstellen, mit Dingen, die ich gelernt habe. (Das sind dann 52 Posts).