A diferencia bash
, ssh
la solicitud de contraseña de '' no usa ninguna biblioteca especial de entrada de terminal como readline
. Las funciones de edición de línea son solo las funciones de edición de línea POSIX TTY de línea de base.
Entonces tiene un POSIX TTY en modo "cocinado" (no crudo), también conocido como modo canónico, y la única edición de línea que está disponible es la que proporciona el núcleo. Mira stty(1)
y nota eso
kill = ^U
. Aquí también se define el carácter de retroceso ( erase = ^?
). Word-erase ( ^W
) es conveniente cuando no está escribiendo a ciegas.
lnext = ^V
significa que puede escribir control-v y luego cualquier cosa (incluido control-c) para obtener un control-c literal.
Para depurar lo que intentabas hacer a ciegas, ejecuta cat
o cat > /dev/null
en tu terminal . Escriba cosas, luego vea qué funciona y qué no para editarlo.
readline
(utilizado por bash
) lee el carácter sin formato y realiza la edición de línea en el espacio del usuario. Sin embargo, sus enlaces predeterminados son compatibles con los caracteres de control TTY predeterminados para el subconjunto de funciones de edición que ambos proporcionan.
readline va mucho más allá de la simple edición de línea de un TTY simple. (por ejemplo, un teléfono de texto sólo puede borrar caracteres al final de la línea, lo que no hay ^a
y delete
o izquierda / flecha hacia la derecha)
Cuando bash
ejecuta un comando en primer plano, primero pone el TTY en modo canónico (porque ese es el valor predeterminado). Por lo tanto, la ejecución stty -a
(sin redireccionamiento) siempre verá su propio terminal en modo canónico. Pero si redirige la entrada de algún otro TTY que se está bash
ejecutando en él, puede ver qué configuración de terminal aplica bash + readline. por ejemplo, se stty -a < /dev/pts/12
muestra -icanon
para el modo sin formato porque tengo una bash
ejecución en ese terminal. (Cambié a otra pestaña y corrí tty
, luego usé la ruta del archivo del dispositivo desde el primer terminal). Si corriera cat
en esa otra terminal, vería el icanon
modo canónico.
Relacionado: El TTY desmitificado
https://www.gnu.org/software/libc/manual/html_node/Canonical-or-Not.html
https://en.wikipedia.org/wiki/POSIX_terminal_interface