Tastaturen senden Ereignisse an den Computer. Ein Ereignis lautet "Scan Code nnn down" oder "Scan Code nnn up". Am anderen Ende der Kette erwarten Anwendungen, die in einem Terminal ausgeführt werden, Eingaben in Form einer Folge von Zeichen. (Es sei denn, sie haben einen unformatierten Zugriff angefordert, wie dies der X-Server tut.) Wenn Sie drücken A, sendet die Tastatur die Information "Scan-Code 38 nach unten". Der Konsolentreiber schlägt seine Tastaturbelegung nach und wandelt diese in "Zeichen a
" um (wenn keine Modifizierertaste gedrückt wird).
Wenn Sie eine Taste oder Tastenkombination drücken, die kein Zeichen ergibt, müssen die Informationen in Zeichen codiert werden. Einige Tasten und Tastenkombinationen haben entsprechende Steuerzeichen, z. B. Ctrl+ Asendet das Zeichen ␁
(Bytewert 1), Returnsendet das Zeichen ␍
(Strg + M, Bytewert 13) usw. Die meisten Funktionstasten haben kein entsprechendes Zeichen und senden stattdessen Eine Zeichenfolge, die mit dem Zeichen ␛
(Escape, Byte-Wert 27) beginnt . Beispielsweise wird der Schlüssel Upin die Escape-Sequenz übersetzt ␛[A
(drei Zeichen: Escape, offene Klammer, Großbuchstabe A).
Die Aufforderung zur Eingabe des Benutzernamens auf der Konsole ist dumm und versteht die meisten Escape-Sequenzen nicht. Es verfügt nicht über die gewohnten Funktionen für Line Edition und Verlauf: Diese werden von der Shell bereitgestellt. Bis Sie sich anmelden, ist keine Shell vorhanden. Es wird also einfach die Escape-Sequenz angezeigt. Es gibt kein Symbol für das ␛
Zeichen, daher wird es als angezeigt ^[
. Das ^
Vorzeichen wird traditionell als Präfix für Steuerzeichen verwendet, und Escape wird ^[
aufgrund seines Bytewerts verwendet: Es ist der Bytewert von [
minus 64.
Wenn Sie Upan einer Shell-Eingabeaufforderung auf drücken , wird dieselbe dreistellige Sequenz an Ihre Shell gesendet. Die Shell interpretiert dies als Befehlssequenz (normalerweise zum Aufrufen des vorherigen Verlaufselements). Wenn Sie die Taste Ctrl+ Vdann Upam Shell - Prompt, diese Einsätze der Escape - Sequenz an der Eingabeaufforderung: Ctrl+ Vist ein Befehl , um das nächste Zeichen wörtlich statt zu interpretieren es als Befehl einzufügen, so dass das ␛
ist Zeichen nicht als Beginn einer Escape - Sequenz interpretiert .
Einige Tasten sind nur Modifikatoren und werden nicht an Terminalanwendungen übertragen. Wenn Sie beispielsweise drücken Shift, verbleiben diese Informationen im Terminal-Treiber und werden berücksichtigt, wenn Sie dann drücken A, sodass der Treiber statt A
an die Anwendung sendet a
.
Darüber hinaus sind möglicherweise einige Funktionstasten in Ihrer Konsole nicht zugeordnet.
Eine ähnliche Ansicht in der GUI finden Sie unter Was ist der Metaschlüssel von bash?
getty
oder verschlucktlogin
, obwohl ich nicht sicher bin, warum. Nach fundierten Vermutungen wird der Druckbildschirm aus historischen Gründen vom Kernel speziell interpretiert. Ich bin mir jedoch nicht 100% sicher, außer bei den Modifikatoren.