Konsolen-Emulator für Windows

Eine ordentliche Konsole unter Windows ist so eine Sache. Die meisten professionellen Nutzer sind mit den bestehenden Konsolen unter Windows nicht zufrieden, auch wenn die PowerShell ein wenig Besserung brachte und Microsoft mit dem Windows Terminal aktuell einen neuen Anlauf startet.

Windows Terminal (Preview)
Preis: Kostenlos

Eine weitere Variante ist der Konsolen-Emulator Cmder. Dieser liefert Lösung für eine gut integriertes Terminal. Im Gegensatz zu vielen anderen Lösungen ist Cmder portabel, kann also von Rechner nur Rechner mitgenommen und genutzt werden, ohne Spuren zu hinterlassen. Technisch basiert Cmder auf ConEmu und wurde durch ein Theme und die Clink-Erweiterungen verfeinert.

Cmder

Verfügbar ist Cmder für Windows und kann über die offizielle Seite des Projektes, unter cmder.net bezogen werden. Der Quelltext ist auf GitHub zu finden. Er ist unter der MIT License lizenziert und somit freie Software.

ACME-Client in Shell Script

Das Protokoll, welches Let’s Encrypt zur Anforderung und Übertragung der Zertifikate nutzt, hört auf den Namen ACME. Das Kürzel steht für Automatic Certificate Management Environment. Neben dem offiziellen Client Certbot existieren viele weitere Clients. Einer der Clients, welcher hervorsticht, ist acme.sh. Dieser Client wurde komplett in Shell Script für die Bash geschrieben.

Auf letsencrypt.org ist eine Liste der Clients zu finden

Neben dem ursprünglichen ACME v1-Protokoll unterstützt der Client ebenfalls ACME v2 und kann somit für den produktiven Einsatz genutzt werden. Der Client kann über GitHub bezogen werden. Lizenziert ist er unter der GPL in Version 3 und damit freie Software.

Durchsuchen der Bash-History

Bei der Nutzung der Bourne-again shell, kurz Bash, wird über die eingegebenen Kommandos Buch geführt. Dies ermöglicht es auf Befehle zurückzugreifen, welche bereits eingeben wurde. Auf die History kann mit den Cursor-Tasten Hoch und Runter zugegriffen werden.

Diese Vorgehensweise ist natürlich nur solange praktisch, wenn der gesuchte Befehl in letzter Zeit eingegeben wurde. Gespeichert wird die History im Home-Verzeichnis des jeweiligen Nutzers in einer Datei mit dem Namen .bash_history. Nun könnte der geneigte Nutzer auf die Idee kommen diese Datei einfach nach dem gesuchten Befehl zu durchforsten:

cat .bash_history | grep "befehl123"

Einfacher ist es allerdings auf die eingebaute Suchfunktion der Bash zurückzugreifen. Aktiviert wird diese mittels der Tastenkombination Strg + R. Danach kann der Suchbegriff eingeben werden und dem Nutzer werden Vorschläge aus der Bash-History angezeigt. Sagt einer dieser Vorschläge zu, kann er mit einem Druck auf die Enter-Taste bestätigt werden. Abgebrochen werden kann die Suche mittels der Tastenkombination Strg + C.

ShellCheck

Das Shellskript ist fertig und wartet auf seinen Einsatz. Wer das eigene Skript vor dem Einsatz überprüfen möchte, sollte ShellCheck ausprobieren. Bei ShellCheck handelt es sich um ein Tool zur statischen Code-Analyse von Shell-Skripten. Neben allgemeinen Skriptfehlern, weißt ShellCheck dabei auch auf andere Probleme hin und schlägt Verbesserungen vor.

ShellCheck in Aktion

ShellCheck in Aktion

Neben der Webseite, welcher unter shellcheck.net zu finden ist, kann ShellCheck auch auf der Konsole ausprobiert werden. Das Tool ist unter der GPLv3 lizenziert und damit freie Software. Der Quelltext ist auf GitHub zu finden.

Kreativer Sortieralgorithmus

Es gibt viele Sortieralgorithmen und einige davon wie Bogosort sind Musterbeispiele für schlechte Algorithmen. Auf 4Chan wurde vor einiger Zeit ein sehr kreativer Algorithmus zum Sortieren vorgestellt:

#!/bin/bash

function f() {
    sleep "$1"
    echo "$1"
}

while [ -n "$1" ]
do
    f "$1" &
    shift
done

wait

Dieser in Form einenes Shellskriptes implementierte Algorithmus nutzt, dabei die Sleep-Funktion zur Sortierung der eingegebenen Zahlen. Das bedeutet um so größer die Zahl um so länger wartet der Sleepbefehl. Damit werden alle Zahlen in ihre richtige Reihenfolge gebracht. Das bedeutet natürlich auch, um so höher die Zahlen um so länger dauert das ganze.