Una cosa que me molesta al usar el terminal de Linux es cuando tengo que escribir una contraseña invisible, como cuando ejecuta ssh . A veces escribo mal una o más letras y luego tengo que presionar la tecla de retroceso varias veces para asegurarme de que borré todo para comenzar de nuevo.
Sé que esto no es un gran problema, pero como el otro día descubrí que presionar CTRL + L "borra" el terminal, me preguntaba si hay una manera de borrar / borrar la contraseña invisible sin depender de la tecla de retroceso o presionar la tecla Intro para Inténtalo de nuevo.
Sé que esto ya fue respondido, pero la respuesta no explica lo que está sucediendo.
Caracteres como Ctrl+ Lson manejados por la aplicación . En el caso de ingresar la entrada en el shell, como
bash
, borra la pantalla. Algunas aplicaciones, comoemacs
, lo usan para volver a dibujar la pantalla y / o volver a centrar el cursor.Los caracteres como Ctrl+ Uen la solicitud de contraseña son manejados por la disciplina de línea TTY . Funcionarán cada vez que el terminal de entrada esté en el modo de edición de línea "canónico", que es el modo en que se encuentran sus programas mientras ingresa una contraseña. En este modo, es el núcleo de Linux mismo el que interpreta estos caracteres. Puede ver qué funciones se asignan a qué teclas en la salida de
stty -a
:Aquí, puede ver que Ctrl+ Uestá vinculado a
kill
, que (de acuerdo con la página de manual stty ) "borrará la línea actual". También puede usarstty
para cambiar esta asignación:Esta página tiene mucha información excelente sobre la capa TTY si está interesado.
Si las cosas no eran lo suficientemente confusas: cuando se le solicita un mensaje interactivo
bash
, en realidad no está en el modo de edición de líneas "canónico". En cambio,bash
recibe cada carácter directamente mientras lo escribe e interpreta las secuencias de control en sí, a través de la biblioteca readline . Esta biblioteca será cumplir las asignaciones que se ha fijado en su dispositivo terminal, sin embargo, por lo que aún se puede utilizarstty
para cambiarlos. O bien, puede personalizarlos de forma independiente dentro debash
otros programas basados en readline configurando launix-line-discard
propiedad dentro de su~/.inputrc
archivo. Consulte la página de manual de bash para obtener más información.Cuando ejecuta un programa,
bash
vuelve a habilitar el modo de edición de línea canónica (stty icanon
) si estaba habilitado antes, y luego lo deshabilita nuevamente cuando finaliza el programa (stty -icanon
).fuente