Wenn Sie den TERM-Typ festlegen, teilen Sie dem Host mit, welches TERMCAP zum Zeichnen im Terminalfenster verwendet werden soll. Die meisten * NIX-Hosts wissen nicht, was ein 'Cygwin'-Termtyp ist, daher wissen sie nicht, wie man Zeichen auf dem Bildschirm manipuliert, z.
Wenn Sie die TERM-Variable in CYGWIN vor Telnet oder SSH auf einen Host ändern, erhalten Sie viel bessere Ergebnisse:
In CYGWIN:
d@test01 ~
$ TERM=ansi;export TERM
$ ssh suntest1
d@suntest1's password:
Sun Microsystems Inc. SunOS 5.8 Generic patch October 2001
d pts/1 test01 Fri Oct 12 00:15 still logged in
$ echo $TERM
ansi
$_
Der Host weiß jetzt, dass Sie einen ANSI-Terminaltyp haben, und kann anhand seiner ANSI-TERMCAP-Datei mitteilen, wie er kommunizieren soll.
Wenn das nicht funktioniert und mit Ausnahme der Rücktaste fast alles ordnungsgemäß funktioniert, können Sie "getty" auf dem Host, mit dem Sie eine Verbindung herstellen, neu programmieren, um zu erkennen, was Sie möchten Lösung von Backspace / Löschproblemen):
Sie senden eine SSH- oder Telnet-Verbindung zu Ihrem Host und führen auf dem Host den Befehl stty aus. Wenn Sie die "BACKSPACE" -Taste drücken und es nicht rückwärts geht, sucht das Terminal wahrscheinlich nach einem anderen Zeichen, das auf dem TERM-Typ basiert. Anstatt alles zu durchforsten, können Sie die Backspace-Definition manuell in der CLI oder in Ihrer .profile-, .bashrc- oder .bash-Profildatei in Ihrem $ HOME-Verzeichnis festlegen, wie Sie es wünschen oder basierend auf der Version von * NIX, die Sie sind mit.
Wenn Sie also ^ H drücken (das ist STRG-H) und Ihre Taste sichert, aber Sie die BACKSPACE-Taste drücken, wird stty nicht wie folgt verwendet:
stty erase \*<HIT YOUR BACKSPACE KEY HERE>*[ENTER]
Meistens sieht es so aus:
stty erase \^?[ENTER]
Das '\' sagt ihm, dass das nächste Zeichen ein nicht druckbares Steuerzeichen sein wird und akzeptiert es, nicht "interpretiert" es.
Sobald Sie [ENTER] gedrückt haben, sollten Sie in der Lage sein, Ihre [BACKSPACE] -Taste zu drücken und sie mit der Rücktaste zu löschen.
Sie können dies in Ihrer Shell einstellen.
Wenn Sie jetzt immer noch VI verwenden, funktioniert die Übersetzung manchmal nicht und Sie müssen tatsächlich ^ H in vi eingeben, aber das ist in Ordnung.
Du hättest sagen können:
stty erase k [ENTER]
und es hätte buchstäblich "k" in das Löschen / Löschen-Zeichen übersetzt.
-D