Gotty 2.0.0 Alpha
Konsolenausgabe im Browser
Quelle: https://github.com/yudai/gotty
Lizenz: MIT
Alternativen: Wetty, Ttyd
Gotty verwandelt Kommandozeilentools in Webanwendungen. Dazu führt das in Go implementierte Programm Shell-Befehle mit den Rechten des Aufrufenden aus und zeigt die Ausgabe als HTML-Seite an. Sie finden fertige Gotty-Pakete für Linux, MacOS, FreeBSD, NetBSD und OpenBSD auf der Github-Seite des Projekts. Nach dem Entpacken ist das Tool sofort startklar.
Die Konfiguration erfolgt via Kommandozeilenparameter beim Aufruf. Um ein Konsolenprogramm im Browser bereitzustellen, übergeben Sie es mit dem vollständigen Pfad und optionalen Parametern. Ein eigener Webserver ist nicht erforderlich, da Gotty seine eigene Webengine im Gepäck hat. Das Tool stellt die Ausgabe des jeweiligen Programms standardmäßig auf allen Schnittstellen an Port 8080 bereit. Soll der Output auf einem bestimmten Interface oder an einem anderen Port zur Verfügung stehen, legen Sie dies mit »-a« und »-p« beim Start fest.
In der Voreinstellung bietet Gotty keine interaktive Shell, kann diese aber über »-w« einrichten. Dieser Parameter ist mit Vorsicht zu genießen, denn der Benutzer hat auf dem System die gleichen Rechte wie Gotty selbst. Eine Zugangskontrolle bietet das Werkzeug nicht, aber hinter »-c« können Benutzername und Passwort stehen. Für eine gesicherte Verbindung sorgt »–tls«. Die Anzahl der Verbindungen beschränkt »–max-connection«. Um einen Shell-Befehl nur einmal auszuführen und danach die Verbindung automatisch zu schließen, geben Sie »–once« als Parameter mit. Die Fenstergröße der Webansicht regeln »–width« und »–height«.
Gotty eignet sich vor allem für den Einsatz in lokalen Netzen, um schnell die Ausgabe von Shell-Befehlen im Browser einzublenden.
Helix 0.3.0
Modaler Texteditor
Quelle: https://github.com/helix-editor/helix
Lizenz: Mozilla Public License 2.0
Alternativen: Kakoune, Neovim
Auch wenn an Texteditoren unter Linux wirklich kein Mangel herrscht, kommen scheinbar ständig neue Vertreter hinzu. Der in Rust geschriebene modale Editor Helix ist von Kakoune und Neovim inspiriert. Er bietet mehrere Modi, eine Sprachserver-Unterstützung, Syntax-Highlighting und Code-Parsing. Pakete für Linux, Windows und MacOS finden sich auf Github. Neben der ausführbaren Datei »helix« enthalten sie verschiedene Themes und die Highlighting-Beschreibungen für 18 Sprachen, Satzsysteme und Konfigurationen. Eine Dokumentation fehlt, diese lesen Sie online. Neben Hinweisen zum Anpassen der Tastenbelegung gibt es dort auch eine Anleitung zum Erstellen eigener Themes.
In der Voreinstellung aktiviert Helix die Zeilennummerierung. Mit »:« gelangen Sie in den Befehlsmodus. Helix listet in der Fußzeile alle verfügbaren Kommandos auf. Mit fortschreitender Eingabe des Befehls reduziert sich die Auswahl. Ein Druck auf [I] wechselt in den Eingabemodus. Ähnlich wie Vim kann Helix mehrere Dateien in verschiedenen Buffern öffnen und das aktuelle Fenster vertikal oder horizontal unterteilen. Eine Übersicht aller Modi und Tastaturkürzel finden Sie in der Dokumentation auf der Projektseite.
Helix erwartet seine Konfiguration als YAML-Datei im Verzeichnis »$HOME/.config/helix/«. Für das Parsen von Code nutzt Helix die Bibliothek Tree-Sitter, was laut Entwickler einen Geschwindigkeitsvorteil gegenüber anderen Regex-basierten Highlighting-Techniken bringt. Der Verzicht auf integrierte Skriptsprachen soll den Ressourcenbedarf des Texteditors weiter senken.
Helix gefällt, erfordert aber eine längere Einarbeitungszeit. Da sich das Tool gerade in einer intensiven Entwicklungsphase befindet, sollte man es im Auge behalten.
Lsd 0.20.1
Ls in Farbe und mit Icons
Quelle: https://github.com/Peltoche/lsd
Lizenz: Apache 2.0
Alternativen: Ls, Color Ls
Wer bei diesem Tool an Drogen denkt, liest das falsche Magazin – Lsd steht für Ls Deluxe. Das von Color Ls inspirierte, in Rust geschriebene Werkzeug verspricht Farben und Symbole für die Ls-Ausgabe in der Shell, ganz ohne Rauschmittel. Da sich das Tool noch in keinem Distributions-Repository findet, installieren Sie eines der unter Github angebotenen Binaries. Damit die Darstellung der Icons gelingt, spielen Sie zusätzlich die Schrift Nerd Font oder das Paket Fontawesome ein.
Die Entwickler haben viele Parameter von Ls übernommen. So zeigt »-a« den Inhalt einschließlich versteckter Dateien an. Eine umgekehrte Sortierung der Ausgabe gelingt mit »-r«. Lsd bietet auch eigene Optionen. Der Schalter »–blocks« passt die Ausgabe individuell an. »–color« und »–depth« beeinflussen Farbe und Farbtiefe. Auch beim Sortieren geht das Tool eigene Wege. »–group-dirs« zeigt erst Unterverzeichnisse, dann die in einem Verzeichnis enthaltenen Dateien. Auf eine Ansicht als Baumstruktur schalten Sie mit »–tree« um. Daneben kann Lsd auch nach Größe, Änderungszeitpunkt oder Versionsnummern sortieren.
Wenn möglich, zeichnet Lsd zur besseren Unterscheidung zwischen Dateitypen passende Icons. Unter Xubuntu 20.04 scheiterten die Tester am XFCE-Terminal; im Gnome-Terminal klappte die Darstellung mit den Nerd Fonts. Im Zweifelsfall schaltet »–classic« zur konventionellen Ansicht ohne Farbe und Icons um. Wer mag, schreibt die eigenen Einstellungen in die Datei »$HOME/.config/lsd«.
Ob Lsd ein vollwertiger Ersatz für GNU Ls ist, muss jeder selbst entscheiden. Vor dem Einsatz steht jedenfalls die mitunter aufwendige Installation der zusätzlichen Fonts an, und auch nicht jedes Terminal kooperiert.
Shfmt 3.3.0
Quellcode strukturieren
Quelle: https://github.com/mvdan/sh
Lizenz: BSD-3-Clause
Alternativen: Format-Shell, Sh-Checker
Die meisten Kommandozeilenfans schreiben über kurz oder lang ihre eigenen Shell-Skripte, um wiederkehrende Aufgaben zu automatisieren. Mit wenigen Befehlen lassen sich häufig anfallende Tätigkeiten in ein Skript gießen, was Zeit und Arbeit spart. Oft entstehen die Skripte nach der Quick-and-dirty-Philosophie ohne echten Plan und vor allem ohne Struktur. Das in Go implementierte Shfmt will Übersicht in Shell-Skripte bringen und verspricht, den Code aufzuräumen. Es gehört zur Werkzeugsammlung Sh; Sie finden im Github-Repository Pakete für Linux, Windows und MacOS.
Einen Überblick über den überschaubaren Funktionsumfang des Tools liefert der Schalter »-h«. Wenn Sie hinter »shfmt« ein Skript angeben, notiert der Helfer den Code in die Konsole. Alternativ können Sie beim Aufruf ein Verzeichnis definieren, und Shfmt schreibt alle gefundenen Shell-Skripte nach Stdout. Um den Code einfach zu strukturieren, geben Sie »-s« an. Bevorzugen Sie kompakten Code ohne Leerzeichen oder Kommentarzeilen, verwenden Sie stattdessen »-mn«. Mit »-ln« lässt sich das Verhalten des Parsers variieren. Außer der Bash unterstützt das Tool Posix, Mksh und Bats.
Weitere Parameter wie »-i« und »-kp« beeinflussen Ausrichtung und Einrückung des Codes. Der Parameter »-fn« kümmert sich um Klammern und schreibt sie in eigene Zeilen. »-bn« beeinflusst Operatoren wie »&&« und »|«. Der Schalter »-tojson« gibt den Code im JSON-Format aus. Soll Shfmt den Code nicht in die Konsole schreiben, leiten Sie über »-w« die formatierte Ausgabe wieder zurück in die Datei.
Der praktische Helfer Shfmt prüft und korrigiert die Formatierung von Shell-Skripten schnell und übersichtlich auf der Konsole.
SSH Proxy 1.3.6
Load Balancer für SSH
Quelle: https://github.com/cea-hpc/sshproxy
Lizenz: CeCILL-B Free Software License Agreement
Alternativen: Ballast
SSH Proxy tritt an, um die Last vieler SSH-Verbindungen zu verteilen. Das in Go geschriebene Werkzeug reicht eingehende SSH-Verbindungen weiter und macht auf Gateway-Systemen als Load Balancer eine gute Figur. Es unterstützt die Kommandos »ssh«, »scp«, »sftp« und »rsync«. SSH Proxy ist noch in keiner Distribution enthalten; für die aktuelle Version gibt es Pakete unter Github. Die Installation spielt die Programme »sshproxy«, »sshproxyctl«, »sshproxy-dumpd« und »sshproxy-replay« auf dem System ein.
Die Einrichtungsdatei »/etc/sshproxy/sshproxy.yaml« liegt nicht mit im Paket, eine Vorlage gibt es aber auf der Projektseite. Dort finden Sie im Verzeichnis »doc/« auch HTML-Versionen aller Manpages. In der Konfiguration legen Sie den Log-Modus und das Check-Intervall fest. Um SSH Proxy mit Etcd zu kombinieren, nehmen Sie in der Datei die entsprechenden Einstellungen vor. Mit »sshproxyctl« zeigen Sie die in Etcd enthaltenen Daten dann an oder bearbeiten sie.
Im Block »routes« der Einrichtungsdatei definieren sogenannte »services«, wohin das Tool eine Verbindung weiterreicht. Wenn keine andere Service-Definition zutrifft, greift SSH Proxy auf den Standarddienst zurück. Anders als alle anderen Services muss der »default«-Eintrag keine Quelladresse besitzen. Als Ziel können immer mehrere Systeme dienen. Über »route_select« stellen Sie für jeden Service ein, wie das Tool eingehende Verbindungen verteilt. Das kann zufällig oder abhängig von der Anzahl der Verbindungen beziehungsweise der verfügbaren Bandbreite erfolgen.
Alles in allem ist SSH Proxy ein interessanter Load Balancer für SSH. Zu bemängeln bleibt lediglich die an einigen Stellen etwas dünn geratene Dokumentation.
Werk 0.5.4
Task-Runner mit Docker-Unterstützung
Quelle: https://github.com/marghidanu/werk
Lizenz: MIT
Alternativen: Cron, Task Spooler
Frisch ans Werk – hier kommt ein in Crystal implementiertes Tool, das zu festgelegten Zeiten automatisiert Aufgaben (Jobs) auf dem lokalen System und in Docker-Containern ausführt. Auf Github gibt es Binaries für Linux und MacOS sowie einen Link zu einem Image auf Docker Hub. Nach dem Installieren tragen Sie die Tasks in der Datei »werk.yml« ein; eine Beispielkonfiguration gibt es auf Github. Sie können mehrere »werk.yml«-Dateien in unterschiedlichen Verzeichnissen anlegen und gezielt starten.
Die YAML-Datei definiert für den Bereich »jobs« immer eine Hauptaufgabe »main«; weitere Tasks erhalten einen eigenen eindeutigen Namen. Die »description« gibt Auskunft darüber, was der jeweilige Job erledigt. Hinter »executor« folgt die Angabe, wo der Task läuft. In der aktuellen Version stehen »local« und »docker« zur Auswahl. Wer Letzteres wählt, trägt anschließend hinter »image« den Namen eines Docker-Images ein. Werk kümmert sich um dessen Laden und um das Mounten des richtigen Arbeitsverzeichnisses im Container; Voraussetzung ist die Installation von Docker auf der eigenen Maschine.
Nach »commands« legen Sie den oder die auszuführenden Befehle für die jeweilige Aufgabe fest. Dabei können Sie mit »needs« auch Abhängigkeiten zu anderen Tasks in der Konfigurationsdatei definieren. Der Zusatz »can_fail« sorgt dafür, dass andere Jobs aus der »werk.yml« auch dann laufen, wenn einer gescheitert ist. Folgt hinter einem Befehl der Zusatz »silent: true«, unterdrückt Werk die Ausgabe des jeweiligen Befehls. Der Befehl »werk run« führt alle Tasks aus; alternativ geben Sie einzelne Job-Namen an.
Werk ist ein praktischer Task-Runner. Die Einarbeitung dauert ein bisschen, dafür besticht die Zusammenarbeit mit Docker. (Uwe**Vollbracht/hej)










