-
J’en suis récemment venu à penser que tout ce qui se passe dans un terminal résulte de la combinaison des quatre éléments suivants
- le rôle du système d’exploitation
- le rôle du shell
- le rôle de l’émulateur de terminal
- le rôle du programme en cours d’exécution (
top,vim,cat, etc.)
-
Les programmes se comportent de manière étonnamment cohérente
- POSIX définit principalement le fonctionnement de l’émulateur de terminal, de l’OS et du shell, mais il n’existe pas de standard sur la manière dont les programmes individuels doivent se comporter
- Pourtant, les programmes de terminal ont globalement tendance à se comporter de façon cohérente
-
Ces règles sont descriptives, pas prescriptives
- Il ne s’agit pas de convaincre les auteurs de programmes de terminal qu’ils doivent suivre ces règles
- Il est utile de connaître les règles de base auxquelles on peut s’attendre quand on utilise un nouveau programme de terminal
-
Il arrive que la responsabilité du programme ne soit pas claire
- Par exemple, quitter un REPL en appuyant sur
Ctrl-Ddoit être explicitement implémenté par le programme
- Par exemple, quitter un REPL en appuyant sur
Règle 1 : les programmes non interactifs doivent se terminer quand on appuie sur Ctrl-C
- Les programmes non interactifs se terminent par défaut quand on appuie sur
Ctrl-C - Dans les programmes interactifs,
Ctrl-Cjoue un autre rôle
Règle 2 : les TUI doivent se quitter avec q
- Les programmes TUI comme
lessouhtopse quittent avecq
Règle 3 : les REPL doivent se terminer avec Ctrl-D sur une ligne vide
- La plupart des REPL se terminent quand on appuie sur
Ctrl-Dsur une ligne vide
Règle 4 : il ne faut pas utiliser plus de 16 couleurs
- Les programmes de terminal n’utilisent presque jamais de couleurs autres que les 16 couleurs ANSI de base
Règle 5 : il faut à peu près prendre en charge les raccourcis clavier de readline
- La plupart des programmes prennent en charge les raccourcis clavier de
readline
Règle 5.1 : Ctrl-W doit supprimer le dernier mot
- Il existe très peu de programmes où
Ctrl-Wne supprime pas le dernier mot
Règle 6 : il faut désactiver les couleurs lors de l’écriture dans un pipe
- La plupart des programmes désactivent les couleurs lorsqu’ils écrivent dans un pipe
Règle 7 : - signifie stdin/stdout
-
Si on passe
-à la place d’un nom de fichier, le programme lit depuis stdin ou écrit vers stdout -
Apprendre ces règles prend du temps
- Il faut apprendre où elles s’appliquent, reconnaître les exceptions et intégrer inconsciemment les motifs
- Les écrire explicitement peut aider les autres à les apprendre plus vite
1 commentaires
Commentaire Hacker News
Il faut respecter les couleurs de premier plan et d’arrière-plan par défaut de l’utilisateur
Recommande les Command Line Interface Guidelines
-pour stdin, désactiver les couleurs dans un pipeline, etc.Règles supplémentaires pour les outils en ligne de commande
sysexits.h--helpdans le binaire ainsi qu’une page de manuelInformations sur les raccourcis readline/emacs
rlwrappeut être installé pour ajouter des fonctions d’édition de ligneConseils sur l’utilisation des couleurs
Problème rencontré lors de l’utilisation de Ctrl-D dans GHCi
:qExplication sur le fait de traiter
~comme le répertoire personnelIl faut éviter que les programmes ajoutent des fichiers dans le répertoire personnel
Avis sur la cohérence des CLI
Les processus de longue durée devraient recharger leur configuration sur SIGHUP
Astuce utile pour les connexions SSH
~.permet de fermer une session SSH