fish 4.6.0: Shell mit besserer Emoji-Darstellung & Bash-Pipes

Die interaktive Shell fish 4.6.0 bringt verbesserte Emoji-Darstellung, neue Prompt-Optionen und eine Bash-kompatible Pipe-Syntax.

vorlesen Druckansicht 5 Kommentare lesen
Ein Abzeichen mit Bergen, einem Fluss und einem globalen Netzwerk-Symbol auf lila Hintergrund mit Sternen und einem Gitter.

(Bild: heise medien)

Lesezeit: 3 Min.
Inhaltsverzeichnis
close notice

This article is also available in English. It was translated with technical assistance and editorially reviewed before publication.

Die interaktive Unix-Shell fish kann ab Version 4.6.0 Prompt-Informationen direkt aus Umgebungsvariablen übernehmen, stellt Emoji im Terminal breiter dar und akzeptiert mit |& eine aus Bash vertraute Pipe-Schreibweise. fish richtet sich an Administratoren und Entwickler, die eine interaktive Shell mit gut lesbarer Syntax und vielen Komfortfunktionen bevorzugen. Anders als Bash oder Zsh priorisiert fish dies gegenüber strikter POSIX-Konformität.

fish wertet ab sofort drei neue Umgebungsvariablen aus: SHELL_PROMPT_PREFIX, SHELL_PROMPT_SUFFIX und SHELL_WELCOME. Präfix und Suffix erscheinen automatisch vor und nach dem linken Prompt, die Welcome-Variable blendet beim Start eine zusätzliche Meldung ein. Damit lassen sich zum Beispiel privilegierte oder speziell gestartete Sitzungen klar kennzeichnen, ohne eigene Prompt-Logik schreiben zu müssen. Die Entwickler nennen systemd run0 als typischen Anwendungsfall.

Ferner behandelt fish Emoji jetzt standardmäßig als zwei Zellen breit statt bisher eine. Das korrigiert eine häufige Fehlerquelle bei der Terminaldarstellung, wobei die Shell seit kurzem UTF-8 als Standard voraussetzt: Stimmt die angenommene Zeichenbreite nicht mit der tatsächlichen Darstellung überein, verrutschen Prompts, Einrückungen und tabellarische Ausgaben. Die Umstellung hilft vor allem Nutzern, die von modernen Desktops auf ältere Systeme zugreifen. Gegen Fehlausrichtungen auf älteren Terminals hilft es, fish_emoji_width auf 1 zurückzusetzen.

fish akzeptiert ab Version 4.6.0 |& als alternative Schreibweise zu &|. Beide leiten Standardausgabe und Standardfehler gemeinsam in eine Pipe. Ein typisches Beispiel: make |& less schickt Build-Ausgaben und Fehlermeldungen zusammen in den Pager. Die Ergänzung verringert Stolperfallen für Nutzer, die regelmäßig zwischen Bash und fish wechseln.

set_color schaltet Stilattribute wie Kursiv, Unterstreichung, Reverse und Durchstreichen jetzt gezielt ab – etwa mit --italics=off. Neu sind außerdem die Optionen --foreground und --reset. Sie erleichtern Theme-Autoren und Prompt-Frameworks die präzise Steuerung von Terminalattributen.

Videos by heise

Signale wie SIGWINCH, die das System etwa beim Ändern der Fenstergröße sendet, unterbrechen Builtin-Ausgaben nicht mehr. Einen Absturz beim Suspendieren bestimmter Pipelines per Ctrl-Z haben die Entwickler ebenfalls behoben. Unter macOS beseitigt das Release einen Fehler, den langsame Terminalantworten beim Start auslösten.

Version 4.6.0 korrigiert zudem mehrere Fehler aus den Releases 4.3 bis 4.5: ein Zwischenartefakt beim Neuzeichnen des Prompts, die ignorierte Option --color= bei history, Probleme im Vi-Modus bei dl und dh sowie fehlerhafte Completion bei Befehlen, die mit - beginnen.

Der Completion-Pager richtet Beschreibungen jetzt linksbündig aus. fish_indent bewahrt nun Kommentare und Leerzeilen direkt vor einem Brace-Block. Für Entwickler und Distributoren: cargo xtask-Subkommandos brechen bei Testfehlern nicht mehr mit einem Panic ab. Die Maintainer weisen in den Release Notes darauf hin, dass Nutzer den Quellcode über fish-4.6.0.tar.xz beziehen sollen – das generische tar.gz-Archiv von GitHub lasse sich nicht korrekt bauen.

(fo)