Puoi cancellare l'intera password digitata con Ctrl +U .
A differenza di bash
, ssh
la richiesta della password di non utilizza alcuna libreria di input da terminale speciale come readline
. Le funzionalità di modifica della riga sono solo le funzionalità di modifica della riga TTY POSIX di base.
Quindi hai un TTY POSIX in modalità "cotto" (non raw), noto anche come modalità canonica, e l'unica modifica di riga disponibile è quella fornita dal kernel. Vedi stty(1)
, e notalo
kill = ^U
. Qui è anche dove viene definito il carattere backspace (erase = ^?
). Cancella parola (^W
) è comodo quando non stai digitando alla cieca.
lnext = ^V
significa che puoi digitare control-v e poi qualsiasi cosa (incluso control-c) per ottenere un controllo letterale-c.
Per eseguire il debug di ciò che stavi cercando di fare alla cieca, esegui cat
o cat > /dev/null
nel tuo terminale . Digita le cose, poi vedi cosa funziona e cosa no per modificarle.
readline
(usato da bash
) legge il carattere non elaborato ed esegue la modifica della riga nello spazio utente. Le sue associazioni predefinite sono compatibili con i caratteri di controllo TTY predefiniti, tuttavia, per il sottoinsieme di funzionalità di modifica che entrambi forniscono.
readline va ben oltre la semplice modifica della riga di un semplice TTY. (ad es. un TTY può eliminare solo i caratteri alla fine della riga, quindi non c'è ^a
e delete
o freccia sinistra/destra)
Quando bash
esegue un comando in primo piano, mette prima il TTY in modalità canonica (perché è l'impostazione predefinita). Quindi eseguendo stty -a
(senza reindirizzamento) vedrà sempre il proprio terminale in modalità canonica. Ma se reindirizzi l'input da qualche altro TTY che ha bash
in esecuzione su di esso, puoi vedere quali impostazioni del terminale bash + readline sono state applicate. per esempio. stty -a < /dev/pts/12
mostra -icanon
per la modalità raw perché ho un bash
in esecuzione su quel terminale. (Sono passato a un'altra scheda e ho eseguito tty
, quindi ha utilizzato il percorso del file del dispositivo dal primo terminale). Se ho eseguito cat
in quell'altro terminale, vedrei icanon
per la modalità canonica.
Correlati:il TTY demistificato
https://www.gnu.org/software/libc/manual/html_node/Canonical-or-Not.html
https://en.wikipedia.org/wiki/POSIX_terminal_interface