X11 server
Unter X11 hat jede Taste einen keycode, dem vom X11 server per Tabelle ein keysym zugeordnet wird. Diese Tabelle kannst Du mit xmodmap ansehen und verändern. Auch xev(1) zeigt das sehr gut. keycode und keysym werden vom X11 server an den X11 client geschickt.
X11-libs
Die meisten X11 clients werden mit den Standard X11 libraries gebaut, also libX11 und libXt oder gtk, kde, whatever. Da können auch noch irgendwelche Abbildungen zuschlagen, AFAIK, aber die kenne ich nicht.
xterm
Beim xterm kann man festlegen, was Zeichen der "Backarrow key" und "Delete" an das Pseudo-Terminal zur Anwendung schicken soll. Kann man per command line option oder mit Control + Button1 ändern.
Bei anderen Terminal-Emulatoren gibt es sicher ähnliche Funktionen.
console
Unter Linux auf der Konsole besitzt jede Taste auch einen keycode, dem vom Linux kernel mit internen key tables eine Funktion zugeordnet wird. Diese Tabellen kann man sich mit loadkeys(1) und dumpkeys(1) ansehen bzw. verändern.
serielles Terminal
Hier gibt\'s nicht viel einzustellen. Alle Zeichen werden so, wie sie von der seriellen Schnittstelle kommen, an den tty driver weitergereicht.
tty
Der Terminaltreiber kann im canonical mode sein, in dem die Eingabezeile editiert werden, Signal mit CTRL-C, CTRL-Z geschickt werden können, etc. Welche Zeichen Signale erzeugen und hier in Deinem Fall, welches Zeichen das erase character ist, kann man mit stty(1) ansehen und einstellen. Den canonical mode hast Du typischerweise, wenn Du z.B. von der shell ein cat aufrufst. Im canonical mode sieht der Prozeß, der am Terminal hängt, die Eingabezeile erst, wenn RETURN gedrückt wurde.
Im canonical mode kann man übrigens nicht in der Eingabezeile umherlaufen, sondern nur mit dem erase character (normalerwise BS oder DEL) das letzte Zeichen löschen.
Ohne canonical mode gehen alle Zeichen direkt zum Prozeß weiter.
Anwendung
Viele aktuelle shells, z.B. csh, tcsh, bash, zsh, etc. schalten aber den canonical mode aus, um mehr Kontrolle zu haben, also die Eingabe sofort zu sehen. Das brauchen sie, um z.B. completion mit TAB zu ermöglichen. Dann müssen sie aber auch das Editieren der Eingabezeile mit Cursor rechts/links, BS, DEL, etc. selbst machen. Wie da die Zeichen interpretiert werden hängt also von der Anwendung ab.
readline
Viele Anwendungen benutzen dazu die readline (und history) libraries. In denen kann man die Zuordnung von Eingaben zu Funktionen in /etc/inputrc und $HOME/.inputrc steuern.
andere
Andere machen es anders
Das ist dann abhängig von der Anwendung. Ein vi(1) oder
vim(1) schaltet natürlich auch den canonical mode aus, um nicht
erst nach Eingabe einer kompletten Zeile reagieren zu können. Ob
und wie der im input mode Zeichen wie BS und DEL interpretiert, ist
dann irgendwo in der Anwenung und/oder ihrer Konfiguration
festgelegt. Viele lesen das erase character vom tty driver aus und
benutzen das selbst auch für die Backspace-Funktion. Wo und wie man
vim konfigurieren kann, habe ich mir aber noch nicht angesehen.
Autor: Urs Thürmann