Nützliche Helfer für typische Aufgaben in der Shell

Aus LinuxUser 02/2018

Nützliche Helfer für typische Aufgaben in der Shell

Terminal-Tuning

Viele belächeln das Terminal als antiquiertes Relikt aus der Computer-Steinzeit. Mit den richtigen Helfern lassen sich typische Arbeiten darin aber schneller und bequemer erledigen als auf der GUI.

Die Shell gehört zu den zentralen, aber kontroversen Bausteinen eines jeden Linux-Systems. Einsteiger klagen darüber, kryptische Kommandos in die “Eingabeaufforderung” hacken zu müssen. Fortgeschrittene Anwender möchten den Komfort und die Geschwindigkeit nicht missen, mit denen sich viele Aufgaben auf der Konsole erledigen lassen.

Mit ein paar Tricks lässt sich die Shell auf jeden Fall etwas komfortabler gestalten, auch ohne dazu auf Alternativen wie die Zsh*[1] oder Fish [2] umzusteigen. Zwar bringen die “Profi-Shells” viele nützliche Funktionen mit, die man der Bash – der gebräuchlichsten Linux-Shell – kaum beibringen kann. Mit den hier vorgestellten Tools rüsten Sie aber auch die Standard-Shell auf. Die nützlichen Helferlein klinken sich dabei so reibungslos ins System ein, dass sie kaum auffallen.

Bessere Geschichte

Die Bash speichert jedes eingegebene Kommando in der Datei ~/.bash_history. Den Verlauf können Sie sich beispielsweise mit history ausgeben lassen. Die Bash durchsucht die History zudem, sobald Sie im Terminal [Strg]+[R] drücken und dann einen Suchbegriff eingeben. Wiederholen Sie die Tastenkombination, springt die Shell zum nächsten Treffer; mit [Strg]+[Umschalt]+[R] geht es in die andere Richtung.

Die Suche hilft, alte Befehle auszugraben, sodass Sie sie nicht erneut eintippen müssen. Dabei sortiert die Suchfunktion die Treffer immer von neu nach alt. Die zuletzt eingegebenen Kommandos erscheinen beim Durchsuchen mit [Strg]+[R] also immer zuerst. Praktischer wäre es, wenn die am häufigsten gebrauchten Kommandos an erster Stelle erscheinen würden. Genau das und noch einiges mehr ermöglicht Hstr [3], die “Bash and Zsh shell history suggest box”.

Nicht alle Distributionen führen Hstr direkt in den Paketarchiven, bei Ubuntu müssen Sie beispielsweise ein PPA integrieren. Installationshinweise für zahlreiche Distros gibt der Entwickler auf der Github-Projektseite [4]. Nach dem Einrichten des Programms übertragen Sie dessen Standardkonfiguration in die Konfigurationsdatei der Bash-Shell und laden diese neu, damit die Änderungen auch ohne Neuanmeldung greifen (Listing 1).

Listing 1

$ hh --show-configuration >> ~/.bashrc
$ source ~/.bashrc

Hashtags

Ein kleiner Trick erleichtert den Aufruf wichtiger Kommandos: Dazu versehen Sie die Befehle mit einem “Hashtag”. Statt längliches kommando geben Sie beispielsweise längliches kommando #quick ein. Die Shell interpretiert den abschließenden “Hashtag” als Kommentar und führt ihn nicht aus. Mit [Strg]+[R] und quick als Suchbegriff springen Sie nun ohne viel Nachdenken direkt zum gewünschten Kommando.

Starten Sie nun mit [Strg]+[R] wieder eine Kommandosuche in der Shell, springt automatisch Hstr an: Statt nur eines Kommandos sehen Sie eine Ncurses-Oberfläche mit den am häufigsten eingegebenen Befehlen. Tippen Sie einen Suchbegriff ein, filtert Hstr die entsprechenden Treffer aus und sortiert sie entsprechend der Häufigkeit (Abbildung 1). Mit den Pfeiltasten scrollen Sie durch die Liste, ein Druck auf die Eingabetaste führt das gerade markierte Kommando aus. Per Tabulator übernehmen Sie das Kommando in die Shell, sodass Sie noch Änderungen vornehmen können.

Abbildung 1: Die "Shell history suggest box" sortiert die Bash-History nach Häufigkeit der Ausführung, nicht chronologisch.

Abbildung 1: Die “Shell history suggest box” sortiert die Bash-History nach Häufigkeit der Ausführung, nicht chronologisch.

Rutscht Ihnen mal ein Kommando mit sicherheitskritischen Daten in den Verlauf (etwa das Passwort beim Übertragen von Daten mit ftp), dann lässt sich dieser Befehl mit [Entf] ganz schnell wieder aus der Bash-History entfernen. Sehr oft benutzte Kommandos markieren Sie mit [Strg]+[F] als Favoriten und fördern sie wieder zutage, indem Sie mit [Strg]+[Umschalt]+[7] die Hstr-Sortierung ändern.

Bessere Listen

Neben cd dürfte ls so ziemlich das erste Kommando sein, das ein Einsteiger in die Shell eintippt. Schließlich will man immer wieder wissen, welche Dateien in einem Verzeichnis stecken. Später ergänzt man das einfache ls zu einem ls -alh. Das verwandelt die einfache Liste in eine komplette Übersicht samt Dateirechten, Zugehörigkeiten, Dateigrößen und mehr. Zudem gibt das Kommando auch versteckte Dateien und Verzeichnisse aus.

Farben kennt Ls auch, färbt in der Regel aber nur Verzeichnisse und Links ein. Deutlich mehr Komfort bietet die in Rust geschriebene Alternative Exa [5]. Nur wenige Distributionen führen das Programm in ihren Paketquellen, unter Arch Linux muss man noch das AUR bemühen. Der Entwickler bietet jedoch auf seiner Homepage ein Binärpaket für 64-Bit-Systeme an, das Sie einfach als exa nach /usr/local/bin/ oder ~/bin/ kopieren.

Die Ausgabe des Aufrufs exa entspricht der von ls, nur dass Exa zur Übersicht weitere Farben einstreut. Archive färbt es beispielsweise rot ein, Bilder hell- und Videos dunkelviolett, Sicherheitskopien grau und Verzeichnisse hellblau. Interessant wird es, wenn Sie weitere Optionen aktivieren (siehe Tabelle “Exa: Wichtige Optionen”), etwa mit exa -bghHlS. Auf diese Art zeigt Exa die Dateirechte mitsamt Dateigrößen, Zugehörigkeiten sowie den letzten Änderungsdaten fein sauber sortiert in einer Liste an.

Schalter

Langform

Bemerkung

Anzeigeoptionen

-1

--oneline

zeigt jede Datei / jeden Ordner in einer neuen Zeile

-l

--long

zeigt Metadaten wie Dateirechte oder Größe an

-R

--recurse

listet rekursiv die Inhalte aus Unterverzeichnissen (optional: Tiefe --level=Nummer)

-T

--tree

Anzeige in einer Baumstruktur (optional: Tiefe --level=Nummer)

 

--colour wann

keine (never), ständige (always) oder automatische (automatic) farbige Ausgabe

 

--colour-scale

hebt die Anzeige der Dateigröße bei großen Dateien farblich hervor

Optionen zum Filtern und Sortieren

-a

--all

versteckte Dateien und Ordner anzeigen

-d

--list-dirs

behandelt Verzeichnisse wie Dateien

-r

--reverse

dreht die Sortierreihenfolge um

-s Option

--sort=Option

sortiert unter anderem nach name, size, created, newest oder oldest

 

--group-directories-first

listet Verzeichnisse vor Dateien auf

Weitere Farben helfen, den Überblick zu bewahren, etwa bei den Dateirechten. Packen Sie das Kommando als Alias alias ll='exa -bghHlS' in die ~/.bashrc, lässt sich das so konfigurierte Programm mit einem einfachen ll aufrufen (Abbildung 2).

Abbildung 2: Exa liefert als Alternative zu Ls mehr Informationen und bereitet die Ausgabe mit Farben übersichtlich auf.

Abbildung 2: Exa liefert als Alternative zu Ls mehr Informationen und bereitet die Ausgabe mit Farben übersichtlich auf.

Als praktisch erweist sich auch die Fähigkeit von Exa, ganze Ordnerstrukturen rekursiv in einer Baumansicht darzustellen (Abbildung 3). Dazu ergänzen Sie den Aufruf mit exa --tree beziehungsweise exa -T, bei Bedarf mit mehr Informationen und mit nur begrenzter Rekursionstiefe (--level=n). Alternativ schalten Sie die Baumansicht ab und lassen Exa über die Schalter -R oder --recurse einfach nur die Unterordner mit auflisten. Wieder lässt sich die Tiefe über die Option --level begrenzen.

Abbildung 3: Mithilfe der Baumansicht von Exa behalten Sie selbst bei verzweigten Verzeichnisstrukturen den Überblick.

Abbildung 3: Mithilfe der Baumansicht von Exa behalten Sie selbst bei verzweigten Verzeichnisstrukturen den Überblick.

Auch die Shortcuts zum Sortieren der Ausgabe erleichtern den Alltag in der Shell. Um beispielsweise schnell die größten Dateien in einem Ordner zu finden, rufen Sie Exa mit exa -lr --sort=size auf. Der Schalter -r invertiert die Reihenfolge der Ausgabe, sodass die größten Dateien am Anfang der Liste stehen.

Besser auspacken

Im Alltag hat man es immer wieder mit Dateiarchiven zu tun, etwa einem ZIP, RAR oder Tarball (TAR.GZ, TAR.BZ). Die Kommandos zum Entpacken dieser Archive fallen ebenso unterschiedlich aus wie die Formate: mal unzip, mal unrar e, mal tar xzf.

Besonders Tar fordert den Anwender mit seiner kryptischen Syntax regelmäßig heraus. Der Nerd-Comic-Zeichner xkcd hat dem Thema nicht umsonst einen eigenen Strip gewidmet [6]. Nervtötend sind zum Beispiel prall gefüllte Archive, die beim Entpacken nicht in einem eigenen Unterverzeichnis landen, sondern den aktuellen Ordner zumüllen. Solcher Unzulänglichkeiten nimmt sich der Entpacker Dtrx [7] an – das Kürzel steht für “Do The Right Extraction”.

Alle gängigen Distributionen führen Dtrx in den Paketquellen, unter Ubuntu zieht die Installation gleich eine ganze Reihe von Werkzeugen zum Entpacken mit. Bei Arch dagegen müssen Sie selbst die nötigen Tools einspielen. Als Wrapper kann Dtrx selbst keine Archive auspacken, sondern erledigt nur das Zusammenstellen der nötigen Syntax für Sie. Anschließend müssen Sie sich nur noch dtrx Datei zum Auspacken von Archiven merken.

Abbildung 4 zeigt Dtrx in Aktion: Der bewusst schlecht gebaute Tarball bad-tarball.tar.xz enthält kein Basis-Unterverzeichnis, alle Daten landen also beim Entpacken mit tar xf im aktuellen Ordner. Zudem übernimmt Tar unverändert die Dateirechte – in diesem Fall darf man als Nutzer die Dateien nicht verändern, sondern muss erst über Chmod oder einen Dateimanager die Rechte anpassen. Dtrx korrigiert all das in einem Kommando.

Abbildung 4: Dtrx korrigiert beim Entpacken automatisch Schreib- sowie Leserechte und sorgt durch Erstellen eines Unterverzeichnisses für Ordnung.

Abbildung 4: Dtrx korrigiert beim Entpacken automatisch Schreib- sowie Leserechte und sorgt durch Erstellen eines Unterverzeichnisses für Ordnung.

Besseres Terminal

Auch für den Terminalemulator selbst gibt es Alternativen, es muss nicht immer das Gnome Terminal sein. So lohnt ein Blick auf Tilix [8]: Das laufend weiterentwickelte Programm übertrifft in Sachen Funktionen die meisten anderen Terminalanwendungen.

So erlaubt Tilix etwa, das Fenster in mehrere Sub-Terminals zu teilen. So lassen Sie beispielsweise in einem Fensterbereich Htop die aktuelle Auslastung anzeigen, im zweiten geben Sie Systeminformationen aus, und im Hauptabschnitt arbeiten Sie wie gewohnt weiter (Abbildung 5). Die einzelnen Unterfenster lassen sich per Drag & Drop umorganisieren oder auch als neue Terminals aus der Anwendung herausziehen.

Abbildung 5: Der moderne Terminalemulator Tilix bietet viele nützliche Funktionen. So lässt sich das Fenster beispielsweise in mehrere Unterfenster aufteilen.

Abbildung 5: Der moderne Terminalemulator Tilix bietet viele nützliche Funktionen. So lässt sich das Fenster beispielsweise in mehrere Unterfenster aufteilen.

Am Geschmack scheiden sich bekanntlich die Geister. Das gilt auch für Farben im Terminal: Die einen bevorzugen schwarzen Text auf weißem Hintergrund, die anderen eher helle Schrift auf dunklem Untergrund. Die meisten Terminals bringen von Haus aus verschiedene Farbprofile mit, die sich mit wenigen Klicks in den Einstellungen aktivieren lassen.

Nicht in der vorgegebenen Palette enthalten ist meist Nord [9]. Das eher dunkel gehaltene Farbprofil gibt es für zahlreiche Programme, von klassischen Terminalanwendungen über Putty (auch für Windows) bis hin zu entsprechenden Profilen für Editoren oder Entwicklungsumgebungen (Abbildung 6). Auf seiner Github-Seite verlinkt das Projekt zu den unterschiedlichen Anwendungen.

Abbildung 6: Wer im Terminal eher auf dunkle Farben setzt, dürfte an der Farbpalette von Nord (hier unter Putty) gefallen finden.

Abbildung 6: Wer im Terminal eher auf dunkle Farben setzt, dürfte an der Farbpalette von Nord (hier unter Putty) gefallen finden.

Fazit

Die Arbeit in einer Shell muss man nicht mögen, man kann Sie sich jedoch mit zahlreichen Helfern erleichtern. Neben den hier vorgestellten Werkzeugen finden Sie auf Awesome Shell [10] zahlreiche weitere Anregungen. Für so gut wie jeden Anwendungsfall und für jedes Bedürfnis gibt es im Open-Source-Ozean irgendein Werkzeug, das einem bei der Umsetzung hilft – man muss es nur finden. 

DIESEN ARTIKEL ALS PDF KAUFEN
EXPRESS-KAUF ALS PDF
LinuxUser 02/2018 KAUFEN
EINZELNE AUSGABE
ABONNEMENTS
TABLET & SMARTPHONE APPS
E-Mail Benachrichtigung
Benachrichtige mich zu:

Hinweis: Dieser Artikel ist älter als ein Jahr, enthaltene Informationen sind möglicherweise veraltet.

0 Kommentare
Älteste
Neuste Beste Bewertung
Inline Feedbacks
Alle Kommentare anzeigen
Nach oben