Aus Linux-Magazin 11/2024

Sechs CLI-Werkzeuge im Kurztest

Suche mit SQL-Abfragen per Fselect 0.8.6, HTML-Code-Auswerter Htmlq 0.4.0, SCP-Parallelisierer Mscp 0.2.1, Konsolen-Dateimanager Nnn 5.0, schneller Dateipacker Pigz 2.8, Tail-Alternative Tailspin 3.0.2.

Fselect 0.8.6

Suche mit SQL-Abfragen

Quelle: https://github.com/jhspetersson/fselect

Lizenz: Apache 2.0, MIT

Alternativen: Find, Ripgrep

Für die Suche im Dateisystem wünscht man sich oft eine Abfragesprache, die auch komplexere Suchanfragen abbilden kann. Hier hilft Fselect weiter, das Suchanfragen als SQL-ähnliches Statement absetzen kann. Sie müssen es nicht selbst kompilieren, auf Github finden Sie Binärpakete. Die integrierte Onlinehilfe rufen Sie mit »-h« auf, das Quellarchiv bringt außerdem eine Manpage mit

Um eine Suchanfrage zu starten, geben Sie beim Aufruf das Abfrage-Statement wie eine Parameterfolge an. Die Syntax entspricht den gängigen SQL-Konventionen, wobei Fselect Dateiattribute wie Spaltennamen behandelt. Es kann auch mit erweiterten Attributen wie einer Weiterleitung oder dem letzten Zugriff umgehen. Das zu durchsuchende Verzeichnis nimmt im SQL-Statement den Platz der Tabelle ein. Bei Bild- oder MP3-Dateien erfasst Fselect die Metadaten und erlaubt, sie in der Where-Klausel zu verwenden, über die Sie auch die Ergebnismenge einschränken. Dabei dürfen Sie zusätzlich reguläre Ausrücke verwenden. Funktionen wie »format_time«, »upper«, »lower« und »count« erweitern die Möglichkeit, Abfragen einzuschränken. Fselect gibt die Suchtreffer in Tabellenform auf die Konsole aus. Mit dem Schlüsselwort »into« wählen Sie als alternatives Ausgabeformat HTML, JSON oder CSV.

  Fselect eignet sich ideal zur automatisierten Weiterverarbeitung. Weitere Anwendungsbeispiele finden Sie auf der Github-Seite.

Htmlq 0.4.0

HTML-Code auswerten

Quelle: https://github.com/mgdm/htmlq

Lizenz: MIT

Alternativen: keine

Mit Curl oder Wget lässt sich eine HTML-Datei im Handumdrehen herunterladen. Sucht man in der Ausgabe aber nach bestimmten HTML-Elementen, muss man entweder Geduld aufbringen oder mit Tools wie Sed und Grep jonglieren. Das Rust-basierte Htmlq nimmt Ihnen hier Arbeit ab. Sie können auf eines der Binärpakete zurückgreifen und müssen die Software nicht selbst kompilieren.

Seine Daten erhält Htmlq in der Regel über die Standardeingabe. HTML-Dateien können Sie mit dem Parameter »-f« direkt beim Aufruf übergeben. Alternativ leiten Sie die Ausgabe von Webclients wie Curl an Htmlq um. Die Ausgabe erfolgt auf die Konsole oder in eine mit »-o« vorgegebene Datei. Über Aufrufparameter legen Sie fest, wie Htmlq die Eingabe verarbeitet. So legt »-a« fest, welche HTML-Attribute das Tool ausgibt. Benötigen Sie lediglich den Textkörper des jeweiligen Attributs, verwenden Sie zusätzlich den Schalter »-t«. Mit »-w« ignoriert Htmlq Leerzeichen bei der Ausgabe. Einen optisch ansprechenderen Output erzielen Sie mit »-p«. Möchten Sie bestimmte Elemente aus dem HTML-Code entfernen, geben Sie sie hinter »–remove-nodes« angeben. Eine Übersicht aller Einstellungsmöglichkeiten liefert die Onlinehilfe (»-h«), die Github-Seite bietet einige Anwendungsbeispiele.

  Auch wenn die Entwicklung des Werkzeugs in den letzten Monaten etwas stockt, lohnt sich für den ein oder anderen sicher ein Blick darauf.

Mscp 0.2.1

SCP parallelisieren

Quelle: https://github.com/upa/mscp

Lizenz: GPLv3

Alternativen: SCP

Viele Anwender greifen zu SCP, um Dateien schnell und sicher zwischen zwei Systemen zu übertragen. Allerdings arbeitet das Tool rein sequenziell. Zum Parallelisieren der Übertragung brauchen Sie ein Tool wie Mscp. Für 64-Bit-Distributionen gibt es auf der Github-Seite ein statisches Binary, ansonsten müssen Sie das in C geschriebene Tool selbst kompilieren.

Zum simultanen Übertragen von Dateien öffnet Mscp mehrere parallele Verbindungen. Versenden Sie nur eine sehr große Datei, zerlegt das Tool sie 16-MByte-Segmente, die es simultan verschickt. Standardmäßig öffnet Mscp doppelt so viele Verbindungen, wie es verfügbare Prozessorkerne gibt. Mit »-n« geben Sie bei Bedarf eine Verbindungsanzahl vor, die minimale Abschnittsgröße passen Sie über »-s« an. Ein Bandbreitenlimit setzen Sie mit »-L«, eine alternative SSH-Konfigurationsdatei legen Sie mit »-F« fest. Der Parameter »-i« ermöglicht die Angabe des privaten Schlüssels. Mit »-D« starten Sie einen Testmodus, in dem Mscp lediglich die Parameter prüft, aber keine Dateien überträgt. Mscp verwendet standardmäßig den rekursiven Modus, Sie müssen ihn nicht extra angeben. Das Tool basiert auf einer angepassten Libssh, die bei SFTP ein asynchrones Schreiben ermöglicht. Im Test war der so erzielte Zeitgewinn aber eher marginal.

  Bei Interesse sollten Sie Mscp in Ihrem Umfeld testen. Neben einer Onlinehilfe bietet es auch eine Manpage.

Nnn 5.0

Dateimanager für die Konsole

Quelle: https://github.com/jarun/nnn

Lizenz: 2-Clause BSD

Alternativen: Mc

Zwar bringen die meisten Linux-Derivate grafische Dateimanager mit, doch für die Remote-Arbeit braucht man eine konsolenbasierte Software wie Nnn. Altere Versionen des Tools finden sich im Paketfundus vieler Distributionen. Für das aktuelle Release greifen Sie auf Binärpakete auf Github zurück. Die neueste, fehlerkorrigierte Version bietet unter anderem Verbesserungen beim Löschen von Dateien.

Starten Sie Nnn ohne weitere Parameter, sehen Sie den Inhalt des aktuellen Ordners, ein anderes Verzeichnis geben Sie bei Bedarf als Aufrufparameter an. Die gut strukturierte Ausgabe zeigt in der Kopfzeile den Pfad und in der Fußzeile die Attribute des aktuellen Verzeichnisobjekts. Die Navigation erfolgt intuitiv über die Pfeiltasten. Nnn bietet außerdem vier über Ziffern erreichbare Reiter für unterschiedliche Verzeichnisse, über die Sie schnell zwischen verschiedenen Speicherorten wechseln. Den Verzeichnisinhalt bereitet die Software farblich auf. Wünschen Sie eine detaillierte Anzeige, verwenden Sie beim Start den Schalter »-d« mit. In großen Verzeichnissen öffnen Sie mit [Umschalt]+[ 7] die Suche und grenzen die Anzeige ein. Eine Übersicht aller Tastenkombinationen liefert die Onlinehilfe ([Umschalt]+[ß]).

  Nnn bietet alle Funktionen eines Dateimanagers und lässt sich mit Plugins erweitern. Neben einer Übersicht aller verfügbaren Plugins finden Sie im Github-Repo Anwendungsbeispiele und ein Wiki.

Pigz 2.8

Kompression parallelisieren

Quelle: https://github.com/madler/pigz

Lizenz: Public Domain

Alternativen: Gzip

Moderne Multicore-CPUs eignen sich perfekt zum Parallelisieren von Tasks. Mit dem C-basierten Pigz steht eine Gzip-Alternative parat, die das bei der Kompression und Dekompression von Dateien voll ausnutzt. Viele Distributionen führen ältere Versionen des Tools im Repository, die aktuellste müssen Sie selbst aus den Quellen kompilieren. Unter der Haube greift Pigz auf die Bibliotheken Zlib und Pthread zurück.

Die Pigz-Entwickler haben die Belegung vieler Parameter von Gzip übernommen. Daneben bietet das Tool auch eigene Einstellungen. So komprimiert es mit »-K« Dateien im PKZIP-Format, mit »-z« nutzt es stattdessen die Zlib. Standardmäßig komprimiert es jedoch im Gzip-Format. Neben den üblichen Kompressionsstufen von 0 bis 9 bietet Pigz mit der Stufe 11 eine noch kompaktere Alternative, was jedoch zulasten der Laufzeit geht. Standardmäßig startet das Tool mehrere Kompressions-Threads und zerlegt dazu die zu verpackende Datei in 128-KByte-Blöcke. Mit »-b« geben Sie eine andere Blockgröße vor. Die Anzahl der Threads entspricht jener der verfügbaren CPU-Kerne, mehr oder weniger Threads geben Sie mit »-p« vor. Selbst mit nur einem Thread arbeitete Pigz im Test rund 20 Prozent schneller als Gzip, eine Kompression mit zwei Threads erfolgte in der Hälfte der Zeit.

  Pigz bietet eine interessante Alternative zu Gzip und bringt als Dokumentation eine Onlinehilfe sowie eine Manpage mit.

Tailspin 3.0.2

Tail-Alternative

Quelle: https://github.com/bensadeh/tailspin

Lizenz: MIT

Alternativen: Tail

Um nur die letzten Zeilen einer Datei fortlaufend auszugeben, greift man in der Regel zum bewährten Tail. Mit Tailspin, das sich primär als Auswertungshilfe für Logdateien sieht, gibt es jetzt eine Alternative. Binärpakete finden Sie bei Github, neben einer Onlinehilfe steht zum Einarbeiten auch eine Manpage bereit.

Tailspin wertet das beim Aufruf mitgegebene Log anhand von Schlüsselelementen aus und bereitet die Ausgabe optisch auf. Als Schlüssel dienen unter anderem Pfade, URLs, IP-Adressen, UUIDs oder Datumsangaben. In den Inhalten navigieren Sie wie bei anderen Pagern über die Pfeiltasten. Eine fortlaufende Ausgabe erhalten Sie mit dem Schalter »-f«. Tailspin setzt die Ausgabe dann fort, bis Sie sie mit [Strg]+[C] abbrechen. Anschließend wechselt es in den Betrachtungsmodus, sodass Sie die Ausgabe in Ruhe sichten können. Das Tool kann zudem mit »-c« Drittprogramme starten und deren Ausgabe fortlaufend aufbereitet ausgeben. Der entsprechende Programmaufruf muss in Anführungszeichen stehen. Um abseits der vorgegebenen Markierungsmuster bestimmte Wörter hervorzuheben, verwenden Sie Parameter wie »–words-green« oder »–words-blue«.

  Statt eines Protokolls oder einer Programmausgabe können Sie Tailspin auch ein Verzeichnis zur Ausgabe mitgeben. Anwendungsbeispiele finden Sie auf Github. Dort erläutert der Entwickler außerdem den Aufbau einer Konfigurationsdatei für das Tool. (Uwe Vollbracht/jlu)

DIESEN ARTIKEL ALS PDF KAUFEN
EXPRESS-KAUF ALS PDFUmfang: 2 HeftseitenPreis €0,99
(inkl. 19% MwSt.)
LINUX-MAGAZIN KAUFEN
EINZELNE AUSGABE Print-Ausgaben Digitale Ausgaben
ABONNEMENTS Print-Abos Digitales Abo
TABLET & SMARTPHONE APPS Readly Logo
E-Mail Benachrichtigung
Benachrichtige mich zu:
0 Kommentare
Älteste
Neuste Beste Bewertung
Nach oben