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, como emacs
, 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
:
speed 38400 baud; rows 45; columns 128; line = 0;
intr = ^C; quit = ^\; erase = ^?; kill = ^U; eof = ^D; eol = <undef>; eol2 = <undef>; swtch = <undef>; start = ^Q; stop = ^S;
susp = ^Z; rprnt = ^R; werase = ^W; lnext = ^V; flush = ^O; min = 1; time = 0;
-parenb -parodd cs8 -hupcl -cstopb cread -clocal -crtscts
-ignbrk -brkint -ignpar -parmrk -inpck -istrip -inlcr -igncr icrnl ixon -ixoff -iuclc -ixany -imaxbel iutf8
opost -olcuc -ocrnl onlcr -onocr -onlret -ofill -ofdel nl0 cr0 tab0 bs0 vt0 ff0
isig icanon iexten echo echoe echok -echonl -noflsh -xcase -tostop -echoprt echoctl echoke
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 usar stty
para cambiar esta asignación:
stty kill ^E # make ctrl-e erase the line
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 utilizar stty
para cambiarlos. O bien, puede personalizarlos de forma independiente dentro de bash
otros programas basados en readline configurando la unix-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
).