Het terminal erase karakter

Wat is .noseterase voor een file?

Deze file is specifiek voor XS4ALL shell toegang door middel van bash of zsh.

Als deze file in je home directory staat, dan stelt /etc/profile het terminal erase karakter niet in (zoals het hoort).

Wat is het terminal erase karakter?

Het terminal erase karakter is het karakter dat, als het wordt ontvangen, het karakter uitwist dat daarvoor werd ingetikt. Je kunt je huidige erase karakter opvragen met het shell commando stty.

Het erase karakter is doorgaans ^H (control-H, ASCII karakter BS, 8 decimaal) or ^? (ASCII karakter DEL, 127 decimaal). Wat het in een specifieke situatie moet zijn hangt helemaal af van welke terminal (vt100, console, ...) of terminal emulator (xterm, windows telnet, ...) je gebruikt.

Het hoort ook overeen te komen met wat wordt verstuurd als je de toets genaamd "Backspace", "Delete" of "<-", net boven de "Enter" of "Return" toets, aanslaat.

Wat gebeurt er als het erase karakter fout is?

Een fout erase karakter kan een probleem zijn bij sommige programma's die voor hun regel-invoer daarvan afhankelijk zijn (een voorbeeld is vim in line mode). In plaats van dat het laatste karakter wordt gewist, verschijnt ^H of ^? (het feitelijke erase karakter van je terminal) op de invoer.

Merk op dat bash (de Bourne Again SHell commandoverwerker) slim genoeg is om zowel ^H als ^? te herkennen als erase karakter, zodat een onjuist ingesteld erase karakter flexibel wordt ondervangen.

Wat te doen om het juiste erase karakter in te stellen?

Als je terminal erase karakter niet goed is ingesteld, dan:

Kan ik het erase karakter instellen in ~/.login?

'Tuurlijk, bijvoorbeeld met stty erase ^H of stty erase ^?.

Echter, dat is technisch gezien een foute oplossing. Binnen een shell initialisatie file is het onmogelijk om zeker te weten wat het erase karakter moet zijn, omdat je niet weet waarvandaan je inlogt. Misschien zeg je nu wel dat je altijd van thuis inlogt, maar op een kwade dag koop je een nieuwe computer of log je vanaf je vriend zijn computer in, en dan werkt het ineens niet meer.

De superieure oplossing is om erop te vertrouwen dat de login client (telnet, ssh of rlogin) de server vertelt wat het erase karakter is. Als die login client dat niet doet, dan is hij stuk. Installeer een andere.

Auteur

Vincent Zweije