Aus Linux-Magazin 09/2023

CLI-Werkzeuge im Kurztest

CLI-Zettelkasten Brain 2.3.3, Plattenplatz überwachen mit Dusage 0.3.5, Git-Statistiken auslesen mit Git-quick-stats 2.4.1, Awk-Alternative Goawk 1.23.3, CSVs auswerten mit Querycsv 2023-04-04, kompakter Static Web Server 2.19.0.

Brain 2.3.3

Notizen auf der Konsole erfassen

Quelle: https://github.com/robert-lag/brain

Lizenz: GPLv3

Alternativen: Task

Wer einen Geistesblitz notieren möchte, greift oft zum einfachen Texteditor oder bemüht ein Wiki. Mit dem Rust-basierten Tool Brain halten Sie Ihre Einfälle strukturiert auf der Konsole fest. Allerdings müssen Sie das Tool aus den Quellen kompilieren. Sie steuern es über Unterbefehle und Aufrufparameter.

Brain verwaltet alle Einträge im Ordner ».zettelkasten/« direkt unterhalb des Verzeichnisses, aus dem Sie es gestartet haben. Hinter »-d« geben Sie bei Bedarf ein anderes Basisverzeichnis an. Das ermöglicht, verschiedene Zettelkästen zu unterschiedlichen Themen im Dateisystem zu platzieren. Existiert an der aktuellen Position noch kein Zettelkasten, legen Sie ihn mit »brn init« an. Mit »brn add« gefolgt vom Namen der Notiz legen Sie einen neuen Merkzettel an. Brain öffnet dazu die Notiz im Standardeditor aus der Umgebungsvariablen »$EDITOR«. Jede Notiz erhält eine eindeutige ID und einen Zeitstempel. Sie können den Eintrag mit Tags, Referenzen und Quotes erweitern. Mit »brn search« suchen Sie später nach Einträgen, »brn list« listet alle vorhandenen Notizen auf. Einzelne Merkzettel öffnen Sie später mit »brn open«, um den Inhalt anzupassen.

Das Tool bietet mit »brn tui« eine rudimentäre Curses-Oberfläche, die alle Einträge des aktuellen Zettelkastens auflistet und deren Bearbeitung ermöglicht. Das Löschen von Einträgen klappt jedoch ausschließlich mit dem Befehl »brn rm«.

  Im Github-Repository von Brain finden Sie eine Beschreibung mit vielen Anwendungsbeispielen.

Dusage 0.3.5

Plattenplatz im Blick

Quelle: https://github.com/mihaigalos/dusage

Lizenz: MIT

Alternativen: Df

Wer wissen möchte, wie viel Platz auf den einzelnen Block-Devices oder Partitionen eines Systems zur Verfügung steht, greift meist zum GNU-Klassiker Df. Dessen Ausgabe fällt aber oft etwas unübersichtlich aus. Das Rust-basierte Dusage bietet hier eine Alternative. Sie können bequem auf fertige Binärpakete aus dem Github-Repository zurückgreifen. Allerdings setzen diese eine Glibc 2.32 oder höher voraus. Für ältere Distributionen wie Debian 11 müssen Sie das Tool daher selbst kompilieren.

Ohne Parameter aufgerufen, zeigt Dusage die Belegung der Partitionen und Geräte an. Es sortiert die Ausgabe dabei nach Devices, sodass der Zusammenhang der Partitionen erhalten bleibt. Sie sehen nicht nur schnöde Zahlen: Ein Balkendiagramm visualisiert die jeweiligen Füllstände. Möchten Sie statt der belegten Blöcke die Anzahl der verwendeten Inodes sehen, geben Sie Dusage den Schalter »-i« mit. Die Namen besonderer Einhängepunkte wie »/« oder »/boot« hebt das Tool farblich hervor. Besondere Dateisysteme wie Log2ram stellt es stets ans Ende der Ausgabe. Mit dem Schalter »-c« soll das Dusage eine monochrom-freundliche Anzeige liefern, die sich für das Kopieren der Inhalte eignet. Auf dem Testsystem war hier aber kein Unterschied zu erkennen. In Sachen Funktionsvielfalt hat das klassische Df noch die Nase vorn, die Darstellung ist bei Dusage aber attraktiver.

  Das noch junge Projekt wird aktiv entwickelt. Es lohnt sich, es im Auge zu behalten.

Git-quick-stats 2.4.1

Git-Statistiken erfassen

Quelle: https://github.com/arzzen/git-quick-stats

Lizenz: MIT

Alternativen: Git

Git gilt heute als Standard für die verteilte Versionsverwaltung. Die grundlegenden Befehle zum Klonen von Code oder Einpflegen von Änderungen kennt jeder. Wie man statistische Informationen zu einem Repository erhält, wissen dagegen nur wenige. Das Shell-Skript Git-quick-stats stellt eine einfache Oberfläche zur Verfügung, um die wichtigsten Statistikdaten einfach auszulesen. Im Hintergrund greift das Shell-Skript auf bewährte Git-Funktionen wie »log«, »show-ref« oder »diff« zurück.

Ohne Parameter aufgerufen, startet Git-quick-stats in einem interaktiven Modus. Es stellt ein rudimentäres Auswahlmenü mit 20 Einträgen bereit, die sich in die Bereiche Vorschläge, Aufzählung und generierte Daten gliedern. Über die Nummer vor jeden Menüpunkt wählen Sie die gewünschten Informationen aus. Commits lassen sich beispielsweise nach Zeitpunkt, Zeitzone oder Autoren sortiert ausgeben. Alternativ geben Sie dem Tool den gewünschten Menüpunkt als Aufrufparameter mit. Eine Übersicht alle Möglichkeiten bieten die Online-Hilfe (»-h«) und eine Beschreibung im Github-Repository des Projekts. Manche Angaben wie Zeitraum oder Anzeigelimit legen Sie über Git-Umgebungsvariablen fest. Beispiele dazu liefern ebenfalls die Online-Hilfe und das Github-Repo.

  Als Shell-Skript weist Git-quick-stats kaum Abhängigkeiten. Neben der Bash und Git benötigt es lediglich gängige GNU-Tools wie Awk, Sed und Grep, die es praktisch auf jedem System gibt.

Goawk 1.23.3

Awk auf Steroiden

Quelle: https://github.com/benhoyt/goawk

Lizenz: MIT

Alternativen: Awk

Wenn es um das Verarbeiten von Texten in der Shell geht, greifen erfahrene Anwender oft auf das bewährte GNU Awk zurück. Mit dem Go-basierten Goawk steht nun eine Alternative zur Verfügung, die mit einigen neuen Funktionen punktet. Das Github-Repository stellt Binärpakete für alle relevanten Plattformen bereit, sodass Sie sofort mit der Arbeit beginnen können.

Wie das Vorbild ist auch Goawk POSIX-kompatibel. Sie können damit also alle gewohnten Awk-Aufrufe anwenden. Seine Stärken zeigt das Tool unter anderem beim Verarbeiten von CSV-Dateien. Das Github-Repository stellt dazu eine umfassende Anleitung mit zahlreichen Beispielen bereit. Hier erfahren Sie beispielsweise, wie Sie mit Goawk eine CSV-Datei in das TSV-Format überführen. Laut den Entwicklern agiert die Software beim Verarbeiten von CSV-Inhalten deutlich schneller als ein Python-Skript. Setzen Sie allerdings reguläre Ausdrücke ein, verliert das Werkzeug an Geschwindigkeit. Im Gegensatz zum klassischen Awk beherrscht es auch negative Feldindizes. So geben Sie beispielsweise einfach »$-3« an, um den Inhalt des vorvorletzten Felds zu ermitteln. Go-Programmierer haben außerdem die Möglichkeit, die Funktionen von Goawk als Modul in ihren Code zu integrieren.

Anleitungen und eine ausführliche Dokumentation finden Sie im Github-Repository des Tools. Das Binärpaket enthält lediglich eine rudimentäre Readme-Datei, »-h« liefert eine Online-Hilfe.

  Goawk ist keine Eintagsfliege: Das Werkzeug wird seit vier Jahren permanent gepflegt und weiterentwickelt.

Querycsv 2023-04-04

CSV-Files per SQL-Queries auswerten

Quelle: https://github.com/pjshumphreys/querycsv

Lizenz: MIT

Alternativen: Termsql

CSV dient seit Jahrzehnten als Standard für den Austausch von Daten in Tabellenform. Da es sich um ein reines Textformat handelt, kann man die Inhalte bei Bedarf mit GNU-Bordmitteln durchsuchen. Querycsv ermöglicht komplexere Abfragen und sogar Auswertungen, indem es SQL-Abfragen auf einer oder mehreren CSV-Dateien ausführt. Da die gängigen Distributionen das clevere Tool bislang außen vor lassen, müssen Sie es selbst aus den Quellen übersetzen.

Querycsv erfordert keinerlei Konfiguration. Für eine Abfrage geben Sie hinter »-c« das gewünschte SQL-Statement an. Der Name der zu verarbeitenden CSV-Datei fungiert darin als Tabelle. Dabei können Sie wie bei regulären Datenbanken auch zwei Tabellen – in diesem Fall also zwei CSV-Dateien – via JOIN-Befehl in der Abfrage kombinieren. Auch Einschränkungen mit WHERE und eine Sortierung per ORDER-Klausel klappen. Komplexere Abfragen können Sie beim Aufruf als Textdatei angeben – ideal, wenn Sie Anfragen regelmäßig wiederholen möchten. Das Unterverzeichnis »test/« im Quellarchiv enthält zahlreiche Abfragebeispiele, die als Vorlage für eigene Queries dienen können. Retro-Freunde dürften sich außerdem für das Verzeichnis »env/« interessieren: Dort stehen Makefiles für die Installation auf verschiedenen historischen Rechner wie Amiga, Atari ST, C-64 und ZX Spectrum zur Verfügung.

  Querycsv erweist sich im Alltag als äußerst hilfreich, die Dokumentation fällt allerdings spartanisch aus.

Static Web Server 2.19.0

Schlanker Webserver

Quelle: https://github.com/static-web-server/static-web-server

Lizenz: Apache 2.0, MIT

Alternativen: Lighttpd, Caddy

Bei Webservern denken viele an die Platzhirsche Apache, Nginx und Lighttpd. Für das LAN oder statische Inhalte tut es genauso gut auch der Rust-basierte Static Web Server SWS. Sie müssen ihn nicht selbst kompilieren, sondern können auf eines der vielen Binärpakete zurückgreifen. Mit 6 MByte Umfang und null Abhängigkeiten eignet sich SWS auch für den Einsatz in Containern. Der Webserver legt den Fokus auf Sicherheit, Geschwindigkeit und geringen Ressourcenbedarf.

Ohne Parameter aufgerufen, startet SWS auf Port 80 an der lokalen Schnittstelle. Einen anderen Port geben Sie mit »-p« an, ein anderes Interface mit »-i«. Der Server erwartet alle Inhalte im Unterverzeichnis »public/«; fehlt es, quittiert er den Dienst. Mit »-d« geben Sie ein anderes Dokumentenverzeichnis an. SWS startet nur einen Thread pro Prozessorkern, bei Bedarf erhöhen Sie mit »-n« die Anzahl. Zur verschlüsselten Kommunikation aktivieren Sie mit »-t« den HTTP/2-Support. Auf Wunsch liefert SWS auch Archive oder den Verzeichnisinhalt aus. Eine einfache Benutzerauthentifizierung klappt mit »–basic-auth«, wobei das Passwort mit Bcrypt gehasht sein muss. In Sachen Dokumentation gibt sich das Projekt schmallippig: Neben der Online-Hilfe (»-h«) beschränkt sie sich auf einige Anmerkungen im Github-Repository.

  SWS bietet eine interessante Alternative zu den gängigen Webservern und kann auch in Sachen Geschwindigkeit gut mithalten. (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