Fish - Friendly interactive Shell

Aus Linux Bibel
Version vom 13. Mai 2018, 17:34 Uhr von Administrator-Robert (Diskussion | Beiträge) (Fish - die Friendly interactive Shell unter Linux auf dem Terminal nutzen, viele Vorteile aber auch Nachteile. Dieser Beitrag auf der Linux Bibel zeigt den Einstieg in diese innovative Shell)
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)
Wechseln zu: Navigation, Suche

Informationen

Das Terminal / Konsole / Kommandozeile ist unter jedem Linux zu finden obwohl man es mit den heutigen Desktop-Umgebungen wie KDE, GNOME und so weiter eigentlich gar nicht benötigt. Manche Dinge lassen sich damit ganz einfach viel schneller erledigen, wenn sich Windows-Nutzer bei einer Neuinstallation ohne Ethernet durch zahlreiche Menüs wühlen um zu einer funktionierenden Netzwerk-Verbindung zu kommen habe ich dies auf dem Terminal schon lange erledigt und verschiebe Dateien zwischen unterschiedlichen Rechnern und rufe meine E-Mails ab.

Nun ist die Bash - also der Interpreter der hinter dem normalen Terminal steht recht schlicht auch wenn man die Bash hinreichend anpassen kann. Shells - also Interpreter die hinter dem Terminal stehen und auf Eingaben warten und dem Nutzer entsprechende Daten wieder ausgeben gibt es viele, neben der bash gibt es nun auch die fish-Shell, diese wartet mit einigen Innovationen auf. In diesem Beitrag wollen wir die Fish-Shell nun etwas besser kennen lernen, sie lässt sich ganz normal neben der Bash betreiben.

Fish-Shell installieren

Unter direkt auf Debian basierenden Systemen installieren Systemen installieren Sie diese Shell ganz einfach über die Paket-Verwaltung APT - Software installieren, löschen, aktualisieren durch das Paket "fish", unter auf Ubuntu basierenden Systemen wie Kubuntu, Linux Mint und so weiter installieren Sie diese durch folgende Befehle als Administrator - root auf dem Terminal:

sudo apt-add-repository ppa:fish-shell/release-2
sudo apt update
sudo apt install fish

Unter Open SuSE installieren Sie die Software über YaST indem Sie die Webseite Fish-Shell öffnen, auf das Logo für SuSE klicken und nun den Schalter für die jeweilige Distribution wählen.

Fish-Shell nutzen

Man startet wieder normal das Terminal und nutzt nun den Befehl:

fish

um die Fish-Shell zu starten:

Fish-Shell unter Linux auf dem Terminal nutzen

Standardmäßig sieht man eigentlich keinen großen Unterschied zur normalen Bash, bis auf die Begrüßung. Möchte man die Fish-Shell standardmäßig nutzen ändert man dies in den Nutzer-Einstellungen, etwa unter Accounts / Benutzer verwalten Kuser.

Der Befehl:

ls

der uns den Inhalt des aktuellen Verzeichnisses anzeigt bringt schon etwas mehr Farbe ins Spiel:

Fish-Shell unter Linux auf dem Terminal nutzen - Verzeichnisse anzeigen

Interessanter wird es wenn wir einen Befehl eingeben, etwa den Befehl:

cd Downloads

Schon zu Beginn wenn es ein Verzeichnis mit entsprechenden Zeichen die übereinstimmen zeigt die Fish-Shell diese grün an, lässt sich also mit der Tabulator-Taste vervollständigen:

Fish-Shell unter Linux auf dem Terminal nutzen - Befehle interaktiv

Die selbe Geschichte bei Befehlen, wird der Befehl noch nicht vollständig ausgeschrieben - ist aber ein entsprechender vorhanden werden die bisher geschriebenen Zeichen rot dargestellt - lässt sich also per Tabulator-Taste vervollständigen, ist der Befehl vollständig eingetippt wird dieser weiß dargestellt, gibt man einen Befehl falsch ein - vertippt sich und man drückt die Tabulator-Taste werden möglicherweise passende Treffer angezeigt:

Fish-Shell unter Linux auf dem Terminal nutzen - Befehle interaktiv

Befehle zeigt die Fish-Shell wie schon beschrieben weiß, Optionen hingegen werden grün geschrieben um den Unterschied zu sehen:

Fish-Shell unter Linux auf dem Terminal nutzen - Befehle interaktiv - Befehle und Optionen

Fish-Shell anpassen

Gefällt dem Nutzer die Farbkombination nicht die die Shell vor gibt erledigt man dies nicht durch eine Konfigurationsdatei wie unter der Bash sondern indem man aus der Fish-Shell heraus den Befehl:

fish_config

auf, nun öffnet sich der standardmäßig konfigurierte Webbrowser mit der Oberfläche zur Konfiguration:

Fish-Shell unter Linux auf dem Terminal nutzen - Anpassen

Wählen Sie hier ganz einfach per Klick die Farbgebung und klicken nun auf den Schalter "Set Theme", erst dann etwa ändern Sie die Einstellung auf einem anderen Reiter wo Sie die Einstellung wieder bestätigen. Mit der Eingabe-Taste auf der Fish-Shell schließen Sie Einstellungen ab und diese werden übernommen, das Browser-Fenster können Sie schließen:

Fish-Shell unter Linux auf dem Terminal nutzen - Anpassen

Autovervollständigung der Fish-Shell

Wie sicherlich wissen vervollständigt die Bash nicht komplett ausgeschriebene Befehle per Tabulator-Taste, dies gilt auch für Verzeichnisse und Dateien, hier geht die Fish-Shell aber noch etwas weiter, geben Sie beispielsweise einmal den Befehl:

cd Dokumente/

ein und bestätigen diesen, geben Sie später etwa einfach den Befehl:

cd

ein wird die Shell "Dokumente" vorschlagen:

Fish-Shell unter Linux auf dem Terminal nutzen - Befehle interaktiv - Autovervollständigung

Drücken Sie nun die Taste Pfeil-rechts und bestätigen mit der Eingabe-Taste wird der Befehl ausgeführt, alternativ geben Sie ganz einfach den richtigen passenden Befehl an.

Anders als die normale Autovervollständigung der Bash mit der Tabulator-Taste kann die Fish-Shell noch etwas mehr, nun möchte ich mit Fish beispielsweise Dolphin starten, ich gebe also beispielsweise den Befehl:

do

ein und drücke die Tabulator-Taste und nutze die Pfeil-nach-unten-Taste:

Fish-Shell unter Linux auf dem Terminal nutzen - Befehle interaktiv - Autovervollständigung

zeigt mir Fish alle Befehle die mit den Zeichen "do" beginnen, wählen Sie den gewünschten aus, drücken die Eingabe-Taste - so wird der Befehl angezeigt, diesen können Sie nun mit weiteren Optionen befüllen oder einfach durch nochmalige Bestätigung mit der Eingabe-Taste starten.

Weiters kann die Fish-Shell bereits genutzte Optionen aus Konfigurationsdateien auslesen, so wie etwa unter SSH Secure Shell, haben Sie sich bereits einmal mit SSH mit einem oder mehreren entfernten Servern verbunden geben Sie einfach den Befehl:

ssh

ein und drücken die Tabulator-Taste, schon werden alle bisher gestarteten Verbindungen angezeigt:

Fish-Shell unter Linux auf dem Terminal nutzen - Befehle interaktiv - Autovervollständigung

Mit der Taste Pfeil-nach-unten wählen Sie nun ganz einfach den entsprechenden Server aus, mit der Eingabe-Taste bestätigen Sie.

Manpages

Die Geschichte mit den Manpages - also der Hilfe zu Befehlen unter Linux ist eigentlich sehr gut gelöst, bis auf dann wenn man schon einen Befehl eigegeben hat, zurück navigieren und ein man davor setzen, oder ein zweites Terminal öffnen und dort die Manpage zu öffnen - fast umständlich. Viel einfacher auf der Fish-Shell, initialisieren Sie einmal die Datenbank der Manpages auf der Fish-Shell mit dem Befehl:

fish_update_completions

Durchsucht die Shell alle Manpages und fügt diese in seine Datenbank ein, bei neu installierter Software wiederholen Sie den Befehl einfach. Um nun alle möglichen Optionen zu einem Befehl anzuzeigen geben Sie nach dem Befehl einfach das Zeichen "-" an und drücken die Tabulator-Taste:

cp -
Fish-Shell unter Linux auf dem Terminal nutzen - Befehle interaktiv - Manpages

Schon werden alle möglichen Optionen und deren Beschreibung kurz angezeigt, Sie können den Befehl nun ganz normal vervollständigen oder einfach die Pfeil-nach-unten-Taste nutzen. Natürlich können Sie die jeweilige Manpage auch traditionell mittels:

man befehl

aufrufen.

Nachteile

Auch Nachteile gegenüber der Bash gibt es natürlich, so können unter der Fish-Shell nur Scripts / Skripte erstellen gestartet werden die mit dem Shebang:

#!/binfish

beginnen gestartet werden, solche können auch nur dort ausgeführt werden wo die Fish-Shell auch installiert ist.

Komplette Dokumentation

Dies war gerade einmal ein Ankratzen der Möglichkeiten der Fish-Shell, die komplette Dokumentation dieser Shell finden Sie unter Fish-Shell Dokumentation