Contrairement à bash, sshl'invite de mot de passe n'utilise pas de bibliothèque spéciale d'entrée de terminal comme readline. Les fonctions de modification de ligne ne sont que les caractéristiques de base de modification de ligne POSIX TTY.
Vous avez donc un TTY POSIX en mode "cuit" (non brut), aussi appelé mode canonique, et la seule modification de ligne disponible est celle fournie par le noyau. Vous voyez stty(1)et remarquez ça
kill = ^U. C'est également à cet endroit que le caractère de retour arrière est défini ( erase = ^?). Word-erase ( ^W) est pratique lorsque vous ne tapez pas à l'aveugle.
lnext = ^V signifie que vous pouvez taper control-v puis n'importe quoi (y compris control-c) pour obtenir un controlal-c littéral.
Pour déboguer ce que vous essayiez de faire à l'aveuglette, exécutez catou cat > /dev/nulldans votre terminal . Tapez des choses, puis voyez ce qui fonctionne et ce qui ne le modifie pas.
readline(utilisé par bash) lit le caractère brut et effectue la modification de ligne dans l’espace utilisateur. Ses liaisons par défaut sont compatibles avec les caractères de contrôle TTY par défaut pour le sous-ensemble de fonctions d’édition qu’elles fournissent toutes les deux.
readline va bien au-delà de la simple édition de ligne d’un ATS simple. (Par exemple, un téléscripteur ne peut supprimer que des caractères à la fin de la ligne, il n'y a donc pas de flèche ^aet delete/ ou flèche gauche / droite)
Lorsqu'il bashexécute une commande au premier plan, il met d'abord le téléscripteur en mode canonique (car c'est la valeur par défaut). Donc, courir stty -a(sans redirection) verra toujours son propre terminal en mode canonique. Mais si vous redirigez les entrées d'un autre TTY sur lequel il bashtourne, vous pouvez voir quels paramètres du terminal bash + readline ont été appliqués. par exemple stty -a < /dev/pts/12montre -icanonpour le mode brut parce que j'ai un en bashcours d'exécution sur ce terminal. (Je suis passé à un autre onglet et ai couru tty, puis utilisé ce chemin de fichier de périphérique à partir du premier terminal). Si je courais catdans cet autre terminal, je verrais icanonpour le mode canonique.
Connexes: le téléscripteur démystifié
https://www.gnu.org/software/libc/manual/html_node/Canonical-or-Not.html
https://en.wikipedia.org/wiki/POSIX_terminal_interface