3 Punkte von GN⁺ 2024-12-14 | 1 Kommentare | Auf WhatsApp teilen
  • In letzter Zeit habe ich darüber nachgedacht, dass alles, was im Terminal passiert, eine Kombination aus den folgenden vier Elementen ist

    • die Rolle des Betriebssystems
    • die Rolle der Shell
    • die Rolle des Terminal-Emulators
    • die Rolle des laufenden Programms (top, vim, cat usw.)
  • Programme verhalten sich überraschend konsistent

    • POSIX legt vor allem fest, wie Terminal-Emulator, OS und Shell funktionieren, aber es gibt keinen Standard dafür, wie sich einzelne Programme verhalten sollen
    • Trotzdem verhalten sich Terminalprogramme größtenteils auf konsistente Weise
  • Diese Regeln sind beschreibend, nicht vorschreibend

    • Es geht nicht darum, Autorinnen und Autoren von Terminalprogrammen davon zu überzeugen, diese Regeln befolgen zu müssen
    • Es ist jedoch nützlich, die grundlegenden Regeln zu kennen, die man bei der Verwendung eines neuen Terminalprogramms erwarten kann
  • In manchen Fällen ist nicht klar, welches Programm wofür verantwortlich ist

    • Zum Beispiel muss das Beenden eines REPL mit Ctrl-D ausdrücklich vom Programm implementiert werden

Regel 1: Nicht-interaktive Programme sollten sich mit Ctrl-C beenden lassen

  • Nicht-interaktive Programme werden standardmäßig beendet, wenn man Ctrl-C drückt
  • In interaktiven Programmen hat Ctrl-C eine andere Funktion

Regel 2: TUIs sollten sich mit q beenden lassen

  • TUI-Programme wie less oder htop werden beendet, wenn man q drückt

Regel 3: REPLs sollten sich mit Ctrl-D in einer leeren Zeile beenden lassen

  • Die meisten REPLs werden beendet, wenn man in einer leeren Zeile Ctrl-D drückt

Regel 4: Es sollten nicht mehr als 16 Farben verwendet werden

  • Terminalprogramme verwenden fast nie andere Farben als die 16 Standard-ANSI-Farben

Regel 5: readline-Tastenbelegungen sollten ungefähr unterstützt werden

  • Die meisten Programme unterstützen readline-Tastenbelegungen

Regel 5.1: Ctrl-W sollte das letzte Wort löschen

  • Es gibt fast keine Programme, in denen Ctrl-W nicht das letzte Wort löscht

Regel 6: Farben sollten beim Schreiben in eine Pipe deaktiviert werden

  • Die meisten Programme deaktivieren Farben, wenn sie in eine Pipe schreiben

Regel 7: - bedeutet stdin/stdout

  • Wenn - anstelle eines Dateinamens übergeben wird, wird von stdin gelesen oder nach stdout geschrieben

  • Es braucht Zeit, diese Regeln zu lernen

    • Man muss lernen, wo die Regeln gelten, Ausnahmen erkennen und Muster unbewusst erfassen
    • Wenn man diese Regeln explizit aufschreibt, kann das anderen helfen, sie schneller zu lernen

1 Kommentare

 
GN⁺ 2024-12-14
Hacker-News-Kommentare
  • Die Standard-Vordergrund- und Hintergrundfarben des Nutzers sollten respektiert werden

    • Wenn Farben verwendet werden, sollte die Lesbarkeit unabhängig von der Standard-Hintergrund- und Vordergrundfarbe gewährleistet sein
    • Informationen sollten nicht nur über Farben vermittelt werden
    • Emojis sollten mit Bedacht verwendet werden
    • Wichtige Informationen sollten nicht aus der scrollenden Ausgabe verschwinden
    • Dem Nutzer sollten Einstellungen zur Auswahl von Farben und visuellen Elementen angeboten werden
  • Die Command Line Interface Guidelines werden empfohlen

    • Enthält Regeln wie Beenden mit Ctrl-C, Akzeptieren von - für stdin und Deaktivieren von Farben in Pipes
  • Zusätzliche Regeln für Kommandozeilen-Tools

    • Es sollte kein Terminaltyp vorausgesetzt werden
    • Es sollte davon ausgegangen werden, dass möglicherweise kein Terminal vorhanden ist
    • Bei Argumenten und der Struktur der Ausgabe sollten gängige Konventionen befolgt werden
    • Es sollten die standardmäßigen Exit-Codes aus sysexits.h verwendet werden
    • --help im Binary sowie Manpages sollten enthalten sein
  • Informationen zu readline-/emacs-Tastenbelegungen

    • Unter macOS können Ctrl-E, Ctrl-W und Ctrl-U verwendet werden
    • Durch Installation des Programms rlwrap können Funktionen zur Zeilenbearbeitung hinzugefügt werden
  • Hinweise zur Verwendung von Farben

    • Es sollten nicht mehr als 16 Farben verwendet werden
    • Farben sollten konfigurierbar sein
  • Problem bei der Verwendung von Ctrl-D in GHCi

    • Zum Beenden sollte der Befehl :q verwendet werden
  • Erläuterung dazu, ~ als Home-Verzeichnis zu behandeln

    • In der Shell funktioniert das, in der POSIX-API jedoch nicht
  • Programme sollten keine Dateien zum Home-Verzeichnis hinzufügen

    • XDG_CONFIG_HOME sollte respektiert werden
  • Meinung zur Konsistenz von CLI

    • CLI ist konsistenter als GUI
    • Es ist schwierig, diese Eigenschaft auf GUI zu übertragen
  • Lang laufende Prozesse sollten bei SIGHUP die Konfiguration neu laden

  • Nützlicher Tipp für SSH-Verbindungen

    • Mit ~. kann eine SSH-Sitzung beendet werden