Ich weiß, dass dies bereits beantwortet wurde, aber die Antwort erklärt nicht, was los ist.
Zeichen wie Ctrl+ Lwerden von der Anwendung verarbeitet . Wenn Sie beispielsweise Eingaben in die Shell basheingeben, wird der Bildschirm gelöscht. Einige Anwendungen emacsverwenden es beispielsweise, um den Bildschirm neu zu zeichnen und / oder den Cursor neu zu zentrieren.
Zeichen wie Ctrl+ Uan einer Passwortabfrage werden von der TTY-Zeilendisziplin behandelt . Sie funktionieren immer dann, wenn sich das Eingabeterminal im "kanonischen" Zeilenbearbeitungsmodus befindet. In diesem Modus befinden sich Ihre Programme, während Sie ein Kennwort eingeben. In diesem Modus interpretiert der Linux-Kernel selbst diese Zeichen. Welche Funktionen welchen Tasten zugeordnet sind, sehen Sie in der Ausgabe von 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
Hier können Sie sehen, dass Ctrl+ an Ugebunden ist kill, was (gemäß der stty-Manpage ) "die aktuelle Zeile löscht". Sie können sttydieses Mapping auch verwenden , um Folgendes zu ändern:
stty kill ^E # make ctrl-e erase the line
Diese Seite enthält viele großartige Informationen über die TTY-Ebene, wenn Sie interessiert sind.
Wenn die Dinge nicht verwirrend genug wären: Wenn Sie an der Eingabeaufforderung eines interaktiven Programms teilnehmen bash, befinden Sie sich tatsächlich nicht im "kanonischen" Zeilenbearbeitungsmodus. Empfängt stattdessen bashjedes Zeichen direkt während der Eingabe und interpretiert die Steuersequenzen selbst über die Readline- Bibliothek. Diese Bibliothek wird die Zuordnungen ehren Sie auf Ihrem Endgerät festgelegt haben, obwohl, so können Sie immer noch verwenden , um sttysie zu ändern. Sie können sie auch unabhängig in bashund in anderen Readline-basierten Programmen anpassen, indem Sie die unix-line-discardEigenschaft in Ihrer ~/.inputrcDatei festlegen. Weitere Informationen finden Sie auf der bash-Manpage .
Wenn Sie ein Programm ausführen, bashwird der kanonische Zeilenbearbeitungsmodus ( stty icanon) wieder aktiviert, sofern er zuvor aktiviert war, und nach Beendigung des Programms wieder deaktiviert ( stty -icanon).