-
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,catusw.)
-
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-Dausdrücklich vom Programm implementiert werden
- Zum Beispiel muss das Beenden eines REPL mit
Regel 1: Nicht-interaktive Programme sollten sich mit Ctrl-C beenden lassen
- Nicht-interaktive Programme werden standardmäßig beendet, wenn man
Ctrl-Cdrückt - In interaktiven Programmen hat
Ctrl-Ceine andere Funktion
Regel 2: TUIs sollten sich mit q beenden lassen
- TUI-Programme wie
lessoderhtopwerden beendet, wenn manqdrü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-Ddrü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-Wnicht 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
Hacker-News-Kommentare
Die Standard-Vordergrund- und Hintergrundfarben des Nutzers sollten respektiert werden
Die Command Line Interface Guidelines werden empfohlen
-für stdin und Deaktivieren von Farben in PipesZusätzliche Regeln für Kommandozeilen-Tools
sysexits.hverwendet werden--helpim Binary sowie Manpages sollten enthalten seinInformationen zu readline-/emacs-Tastenbelegungen
rlwrapkönnen Funktionen zur Zeilenbearbeitung hinzugefügt werdenHinweise zur Verwendung von Farben
Problem bei der Verwendung von Ctrl-D in GHCi
:qverwendet werdenErläuterung dazu,
~als Home-Verzeichnis zu behandelnProgramme sollten keine Dateien zum Home-Verzeichnis hinzufügen
Meinung zur Konsistenz von CLI
Lang laufende Prozesse sollten bei SIGHUP die Konfiguration neu laden
Nützlicher Tipp für SSH-Verbindungen
~.kann eine SSH-Sitzung beendet werden