Vor einiger Zeit bin ich von der Bourne-again Shell (bash) zu fish gewechselt. Fish ist eine sehr benutzerfreundliche Shell, die mit einigen wirklich nützlichen Features aufwartet. Die Kommandozeile ist farbig. Falsch eingegebene/nicht existente Befehle erscheinen rot, korrekte Befehle blau. Standardmäßig erfolgt Auto-Vervollständigung, usw. Weitere Features sind auf der Webseite beschrieben.

Als regelmäßiger Kommandozeilen-Nutzer hatte ich mir in der Konfigurationsdatei ~/.bashrc einige Shortcuts angelegt. Außerdem nutze ich unter Perl ein lokales Library-Verzeichnis (mit local::lib ), wofür in der .bashrc einige Umgebungsvariablen angepaßt werden müssen. Das mußte unter fish natürlich auch wieder laufen.

Das Setzen von Umgebungsvariablen in bash erfolgt mit dem Befehl export. Um bspw. die Umgebungsvariable $PERL5LIB um eine Pfadangabe zu erweitern, muß man die Datei ~/.bashrc um folgende Zeile erweitern:

export PERL5LIB="/home/user/perl5/lib/perl5:$PERL5LIB"

Die Konfiguration von fish erfolgt über die Konfigurationsdatei ~/.config/fish/config.fish. Das Setzen von Umgebungsvariablen erfolgt nach einer von bash abweichenden Syntax . Für das obige Beispiel lautet die erforderliche Zeile in config.fish:

set -x PERL5LIB /home/user/perl5/lib/perl5 $PERL5LIB

Die Syntax und ein paar häufige Fragen sind in Dokumentation zu fish nachzulesen.