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 bash
eingeben, wird der Bildschirm gelöscht. Einige Anwendungen emacs
verwenden 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 stty
dieses 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 bash
jedes 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 stty
sie zu ändern. Sie können sie auch unabhängig in bash
und in anderen Readline-basierten Programmen anpassen, indem Sie die unix-line-discard
Eigenschaft in Ihrer ~/.inputrc
Datei festlegen. Weitere Informationen finden Sie auf der bash-Manpage .
Wenn Sie ein Programm ausführen, bash
wird der kanonische Zeilenbearbeitungsmodus ( stty icanon
) wieder aktiviert, sofern er zuvor aktiviert war, und nach Beendigung des Programms wieder deaktiviert ( stty -icanon
).