2343633

Sagenhafte Shell - mehr machen mit dem Linux-Terminal

26.04.2018 | 11:11 Uhr |

Hier geht es um Terminalhelfer im Linux-Alltag: Teleconsole ermöglicht ein Rendezvous in der Shell, auch wenn der Linux-Rechner hinter einer Firewall sitzt. Der Classifier hilft dabei, temporäre Dateiablagen schnell aufzuräumen.

Dateisystem und Classifier: Dateien aufräumen

In jedem Dateisystem eines Desktop-PCs gibt es Ordner, wo es wenig geordnet zugeht. Oft sind dies der Downloadordner oder das Schreibtischverzeichnis, das als temporäre Dateiablage dient. Das Kommandozeilentool „Classifier“ hilft beim Aufräumen und sortiert Dateien anhand ihres Typs oder des Erstellungsdatums in Unterordner ein.

Der Classifier verschiebt Dateien anhand des Dateityps oder Erstellungsdatums in Unterverzeichnisse.
Vergrößern Der Classifier verschiebt Dateien anhand des Dateityps oder Erstellungsdatums in Unterverzeichnisse.

Tools zum Aufräumen können noch so clever sein – wenn deren Syntax zu kompliziert ist, kommen sie dann doch nicht oft zum Einsatz.

Classifier arbeitet dagegen automatisch und erledigt die Kategorisierung von Dateitypen selbständig. Parameter sind nicht notwendig.

Lediglich die Installation in den unterschiedlichen Distributionen ist eine kleine Hürde, denn das Tool liegt nicht als distributionsspezifisches Paket vor, sondern als universelles Python-Paket. Zur Einrichtung dient der Python-Paketmanager Pip, den man zuerst aber noch installieren muss. In Debian, Raspbian, Ubuntu, Mint und den weiteren Varianten dieser Distributionen erledigt das dieser Befehl:

sudo apt-get install python-pip

Zur Einrichtung des Classifiers genügt dann dieses Kommando:

sudo pip install classifier

Und so arbeitet das Tool: Sie wechseln im Terminal zu jenem Verzeichnis, dessen Inhalt sortiert werden soll, und rufen dann einfach

classifier

auf. Jetzt legt Classifier passend zu den vorhandenen Dateitypen neue Unterordner wie „Music“, „Documents“, „Pictures“ oder „Archives“ an und sortiert die Dateien dort ein. Welche Dateitypen bekannt sind, zeigt das Kommando

classifier -t

an. Möchte man Dateien stattdessen anhand des aktuellen Datums regelmäßig in Unterverzeichnisse einsortieren, so hilft der Befehl

classifier -dt

weiter, der Unterverzeichnisse im Format [Jahr]-[Monat]-[Tag] anlegt. Den Python-Quellcode des Classifier und eine detaillierte Anleitung präsentiert der Entwickler auf Github unter https://git.io/vbILB .

Befehlsausgaben: Mit Fold Zeilen intelligent umbrechen

Bei Terminalfenstern gilt üblicherweise: je größer, desto besser. Zwar ist die Standardgröße des Terminals immer noch mit 80 Spalten horizontal und 24 Zeilen vertikal vorgegeben, aber viele Kommandozeilentools liefern überlange Zeilen als Ausgabe. Es gibt allerdings ein Zusatztool, das lange Zeilen geschickt umbricht.

Das Kommando fold bricht überlange Zeilen in der Ausgabe von Befehlen in der gewünschten Länge um.
Vergrößern Das Kommando fold bricht überlange Zeilen in der Ausgabe von Befehlen in der gewünschten Länge um.

Mit dem Befehl fold liefern die GNU Coreutils, die auf nahezu jedem Linux-System vorinstalliert sind, eine Formatierungshilfe. Der Befehl arbeitet in einer Befehlsverkettung (Pipe) mit den Zeichenketten, die ein vorangestelltes Kommando oder Programm liefert, und bricht Zeilen ab einer gewünschten Länge oder auch passend nach einem Leerzeichen um. In den Standardeinstellungen arbeitet fold mit einer Terminalbreite von 80 Zeichen, was den Dimensionen der meisten Terminalfenster entspricht. Weitere Parameter können die gewünschte Länge der Zeile definieren. So zeigt

uname -a |fold -sw30

die Kernel-Version übersichtlich formatiert an und nicht in einer einzigen überlangen Zeile.

Eine weitere Kombination des Befehls mit dem Kommando nl ergänzt die Ausgabe um Zeilenzahlen, die unübersichtliche Ausgaben lesbarer machen. Ein praktisches Beispiel ist dieses Kommando:

lspci|nl -nln|fold -s

Es nummeriert die lange und schlecht lesbare Liste der PCI-Geräte im Rechner und umbricht an geeigneter Stelle.

Analyse von Shell-Scripts: Programmierfehler finden

Shell-Scripts erleichtern den Alltag und sind bei der fortgeschrittenen Administration von Linux-Servern eine unverzichtbare Hilfe. Gerade am Anfang einer Linux-Karriere unterlaufen aber auch in kleinen Scripts kleine und große Fehler. Ein Programm zur Codeanalyse in Shell-Scripts findet Fehler und erklärt die Lösung.

Eine Codeanalyse mit Shellcheck hilft Shell-Scripts, potenzielle Probleme oder grobe Fehler in der Syntax zu finden.
Vergrößern Eine Codeanalyse mit Shellcheck hilft Shell-Scripts, potenzielle Probleme oder grobe Fehler in der Syntax zu finden.

Eine statische Analyse von Script-Dateien für die Interpreter Bash, Ksh und Sh erledigt das Programm Shellcheck, das in den Standard-Paketquellen aller verbreiteten Linux-Distributionen zur Installation bereitsteht. Statisch bedeutet in diesem Zusammenhang, dass der Code anhand von festen Richtlinien und nicht durch Testverfahren während der Ausführung analysiert wird. Shellcheck findet unzählige Flüchtigkeitsfehler, kaputte Variablen, typische Anfängerfehler und weist auf Eigenheiten in der Syntax von Shell-Scripts hin, die bei der manuellen Inspektion oft nicht auffallen.

Es ist eine gute Angewohnheit, jedes längere Shell-Script damit zu überprüfen, zumal die Fehlermeldungen auch gute (englischsprachige), meist leicht verständliche Korrekturhinweise enthalten.

Installiert ist Shellcheck schnell mit dem jeweiligen Paketmanager der verwendeten Distribution, in Debian/Ubuntu beispielsweise über diesen Befehl:

sudo apt-get install shellcheck

Für zahlreiche andere Distributionen gibt es auf der Github-Webseite Links und Installationshinweise. Die Verwendung in der Kommandozeile ist recht einfach:

shellcheck [Script]

Danach listet Shellcheck farbig abgesetzte Meldungen und Warnungen über Fehler auf, die es in der angegebenen Script-Datei gefunden hat.

Teamarbeit mit Teleconsole: Treffen im Terminal

Linux-Anfänger bräuchten in der Shell öfter mal Hilfe, aber das Know-how, erfahrene Linux-Dompteure per SSH auf die eigene Maschine zu lassen, ist oft noch nicht vorhanden. Der Onlinedienst Teleconsole stellt einen privaten Vermittlungsdienst bereit, der die Verbindung zu einem SSH-Server per Proxy oder per Browser vereinfacht. Das Funktionsprinzip ähnelt dem von Teamviewer, ist aber auf die Shell zugeschnitten und auf Anwender hinter einer Firewall, die keine direkte SSH-Verbindung zulässt.

Mit Teleconsole die Konsole des eigenen Linux-Rechners auch durch eine Firewall erreichbar machen.
Vergrößern Mit Teleconsole die Konsole des eigenen Linux-Rechners auch durch eine Firewall erreichbar machen.

Teleconsole startet auf dem Zielrechner einen temporären Server. Er verbindet sich per HTTPS für die Dauer dieser SSH-Sitzung mit dem Server des Dienstanbieters, der die Anmeldung dann als ID verfügbar macht.

Die Installation der Teleconsole erfordert sudo-Privilegien und erfolgt über dieses Kommando:

curl https://www.teleconsole.com/get.sh | sh

Falls das Tool curl noch nicht vorhanden ist, so ist das mit

sudo apt-get install curl

unter Debian/Ubuntu schnell nachgeholt. Der Befehl

teleconsole

startet eine SSH-Session über den Vermittlungsdienst und gibt eine ID aus, mit der sich die Gegenstelle verbinden kann – entweder auch über Teleconsole oder über den Browser mit der URL https://as.teleconsole.com/s/[ID]. Der Dienst ist ein kostenloses Angebot der Firma Gravitational mit Sitz in München und San Francisco.

Bei der Eingabe von Passwörtern und vertraulichen Daten sollte man im Auge behalten, dass der Traffic zwar verschlüsselt zum Dienstanbieter geht, dort aber möglicherweise im Klartext lesbar ist. Alle vertraulichen Log-in-Daten während dieser Sitzung sollten daher danach geändert werden.

Lesen Sie auch : Terminal-Tuning: Linux-Tricks für mehr Komfort

0 Kommentare zu diesem Artikel

PC-WELT Marktplatz

2343633