tset(1-ucb) (BSD Compatibility Package) tset(1-ucb)
NAME
tset, reset - Terminaleigenschaften definieren oder wiederherstellen
SYNTAX
/usr/ucb/tset [-] [-rsIQS] [-eC] [-kC] [-iC]
[-m [ident][test speed]:type] ... [type]
/usr/ucb/reset [-] [-rsIQS] [-eC] [-kC] [-iC]
[-m [ident][test speed]:type] ... [type]
BESCHREIBUNG
tset konfiguriert Ihr Terminal normalerweise bei Ihrer ersten Anmel-
dung. Dieses Kommando führt terminalabhängige Verarbeitungsprozesse
aus, wie z. B. Setzen der Lösch- und Kill-Zeichen, Setzen von Verzöge-
rungen bzw. Zurücksetzen von Verzögerungen auf ihren früheren Wert,
Senden aller zur korrekten Initialisierung des Terminals erforderli-
chen Sequenzen usw. tset stellt zuerst den Typ type des betreffenden
Terminals fest und nimmt dann die erforderlichen Initialisierungen und
die Moduseinstellungen vor. Wenn ein Anschluß nicht permanent mit
einem bestimmten Terminal verbunden (d. h. nicht festverdrahtet) ist,
wird ihm eine entsprechende generische Kennung z. B. dialup zugeord-
net.
reset löscht die Terminaleinstellungen, indem es die Modi CBREAK und
RAW, Ausgabeverzögerungen und Paritätsprüfungen deaktiviert und die
Übersetzung von Zeilenvorschubzeichen (NEWLINE), die Echo-Funktion und
Erweiterung von Tabulatorzeichen aktiviert und undefinierte Sonderzei-
chen in ihrem Standardstatus wiederherstellt. Anschließend setzt es
die Modi wie gewöhnlich auf der Grundlage des Terminaltyps (hierbei
werden wahrscheinlich einige der oben aufgeführten Einstellungen über-
schrieben). Weitere Informationen finden Sie unter stty(1). Alle Argu-
mente für tset können mit reset verwendet werden. reset verwendet
außerdem rs= und rf=, um die Initialisierungszeichenkette und -datei
wieder auf ihren früheren Wert zurückzusetzen. Dies ist nützlich,
nachdem ein Programm gestorben ist und das Terminal in einen merkwür-
digen Status versetzt. In dieser Situation werden Zeichen häufig nicht
so wiedergegeben, wie sie von Ihnen eingegeben wurden. Möglicherweise
müssen Sie "<LINEFEED>reset<LINEFEED>" eingeben, da <RETURN> eventuell
nicht funktioniert.
Wenn keine Argumente angegeben werden, liest tset den Terminaltyp aus
der Umgebungsvariablen TERM, reinitialisiert das Terminal und führt
bei der Anmeldung eine Initialisierung der Modus-, Umgebungs- und
anderer Optionen durch, um den Terminaltyp zu ermitteln und die Termi-
nalmodi zu konfigurieren.
Seite 1 Reliant UNIX 5.44 Gedruckt 11/98
tset(1-ucb) (BSD Compatibility Package) tset(1-ucb)
Bei der Verwendung in einem Startskript [.profile für Benutzer von
sh(1) oder .login für Benutzer von csh(1)] sollten Informationen zum
Terminaltyp angegeben werden, den Sie normalerweise an nicht-
festverdrahteten Anschlüssen verwenden. Für die Kennung kann jede der
in /etc/termcap angegebenen alternativen generischen Namen verwendet
werden. Weitere Informationen finden Sie unten unter der Option -m.
Wird keine Abbildung vorgenommen und eine Endoption type, die nicht
von einem -m gefolgt wird, in der Kommandozeile angegeben, wird dieser
Typ verwendet.
Normalerweise sollen der durch tset festgelegte Terminaltyp sowie
Informationen über die Funktionen des Teminals an die Umgebung einer
Shell zurückgegeben werden. Hierzu können die Optionen -, -s oder -S
verwendet werden.
Wenn Sie mit der Bourne-Shell arbeiten, stellen Sie dieses Kommando in
Ihre Datei .profile:
eval `tset -s options ...`
Wenn Sie mit der C-Shell arbeiten, stellen Sie dieses Kommando in Ihre
Datei .login:
eval `tset -s options ...`
Bei der Verwendung der C-Shell sollten Sie darüber hinaus einen Alias
in Ihrer Datei .cshrc erstellen:
alias tset 'eval `tset -s \!*`'
Hierdurch kann das folgende Kommando jederzeit aufgerufen werden, um
das Terminal sowie die Umgebung einzustellen:
tset 2621
In einem Bourne-Shell-Skript hat die Erstellung von Aliassen nicht
diese gewünschte Wirkung, da Shell-Skripts hier nicht die Umgebung
ihres Vaterprozesses einstellen können. Wenn ein Prozeß die Umgebung
seines Vaterprozesses einstellen könnte, wäre keine der hier beschrie-
benen Maßnahmen überhaupt erforderlich.
Wenn der Terminaltyp bekannt ist, setzt tset den Modus für den Termi-
naltreiber. Dabei wird normalerweise eine Initialisierungssequenz an
das Terminal gesendet, werden die Zeichen zum Löschen einzelner Zei-
chen (und optional Zeichen zum Löschen der gesamten Zeile) sowie Ver-
zögerungen für Sonderzeichen gesetzt. Die Erweiterung von Tabulator-
und Zeilenvorschubzeichen (TAB- bzw. NEWLINE) wird während der Über-
tragung der Terminalinitialisierungssequenz deaktiviert.
Seite 2 Reliant UNIX 5.44 Gedruckt 11/98
tset(1-ucb) (BSD Compatibility Package) tset(1-ucb)
Auf Terminals, die die Funktion BACKSPACE ausführen können, jedoch
keine Durchstreichungen ausführen können (wie z. B. ein CRT), und wenn
das Löschzeichen # ist, wird das Löschzeichen geändert, als wäre die
Option -e verwendet worden.
OPTIONEN
- Der Name des verwendeten Terminals wird in der Standard-Ausgabe
ausgegeben. Dieser soll von der Shell übernommen und in die Umge-
bungsvariable TERM gestellt werden.
-r Unter anderem den Terminaltyp ausgeben.
-s Ausgabekommandos zum Setzen und Exportieren von TERM. -s kann wie
folgt verwendet werden, um die Terminalinformationen in die Umge-
bung zu stellen:
set noglob
eval `tset -s ...`
unset noglob
Hierdurch können Programme, wie z. B. der vi(1), schneller star-
ten. Wenn die Umgebungsvariable SHELL mit csh endet, werden C-
Shell-Kommandos, andernfalls werden Bourne-Shell-Kommandos ausge-
geben.
-I Die Übertragung der Zeichenketten für die Terminal-
Initialisierung unterdrücken.
-Q Ausgabe der Meldungen Erase set to und Kill set to unterdrücken.
-S Ähnlich wie -s, stellt aber Informationen für TERM und TERMCAP
zur Verfügung. -S kann wie folgt verwendet werden:
set noglob
set term=(`tset -S ...`)
setenv TERM $term[1]
setenv TERMCAP "$term[2]"
unset term
unset noglob
-eC Das Löschzeichen auf allen Terminals auf das angegebene Zeichen C
setzen. Der Standardwert ist die Taste BACKSPACE auf der Tasta-
tur, normalerweise "^H" (CTRL-H). Das Zeichen C kann entweder
direkt oder mit einem vorangestellten Dachzeichen (wie in diesem
Beispiel) eingegeben werden.
Seite 3 Reliant UNIX 5.44 Gedruckt 11/98
tset(1-ucb) (BSD Compatibility Package) tset(1-ucb)
-kC Das Zeichen zum Löschen einer Zeile auf allen Terminals auf das
angegebene Zeichen C setzten. Der Standardwert ist "^U" (CTRL-U).
Das Kill-Zeichen wird allein verwendet, wenn die Option -k nicht
angegeben wird. Steuerzeichen können angegeben werden, indem
nicht die Steuertaste selbst angegeben wird, sondern dem alphabe-
tischen Zeichen ein Dachzeichen vorangestellt wird (wie bei
CTRL-U). Hierdurch können Sie Steuerzeichen angeben, die derzeit
zugeordnet sind.
-iC Das Interrupt-Zeichen auf allen Terminals auf das angegebene Zei-
chen C setzen. Der Standardwert ist "^C" (CTRL-C). Das Zeichen C
kann entweder direkt oder mit einem vorangestellten Dachzeichen
(wie in diesem Beispiel) eingegeben werden.
-m [ident[test speed]:type] ...
Einen Terminaltyp angeben (abbilden), wenn die Verbindung zu
einem generischen Anschluß (wie z. B. dialup oder plugboard) her-
gestellt wird, der durch die Anschluß-ID indent gekennzeichnet
wird. Die Abbildung kann von der Baudrate speed abhängig gemacht
werden. Zulässig für test ist eine beliebige Kombination der Ope-
ratoren:
> Größer als
= oder @
Gleich
< Kleiner als
! Dies ist nicht der Fall (negiert die oben aufgeführten Ope-
ratoren)
? Fordert zur Eingabe des Terminaltyps auf. Wenn keine Eingabe
erfolgt, wird standardmäßig type ausgewählt.
Im folgenden Beispiel wird der Terminaltyp auf adm3a gesetzt,
wenn der Anschluß vom Typ dialup eine Geschwindigkeit von mehr
als 300 Baud unterstützt oder auf dw2, wenn der Anschluß vom Typ
dialup eine Geschwindigkeit von 300 Baud oder weniger unter-
stützt. Im dritten Fall kennzeichnet das Fragezeichen vor dem
Terminaltyp, daß der Benutzer den gewünschten Typ prüfen muß.
Eine Antwort NULL kennzeichnet, daß der angegebene Typ korrekt
ist. Andernfalls wird die Antwort des Benutzers als der
gewünschte Typ angesehen.
tset -m 'dialup>300:adm3a' -m 'dialup:dw2' -m \
'plugboard:?adm3a'
Soll eine Interpretation als Metazeichen verhindert werden, muß
das gesamte Argument zu -m in einfache Hochkommata gesetzt wer-
den. Bei der Verwendung der C-Shell sollte vor Ausrufezeichen ein
Gegenschrägstrich (\) stehen.
Seite 4 Reliant UNIX 5.44 Gedruckt 11/98
tset(1-ucb) (BSD Compatibility Package) tset(1-ucb)
BEISPIELE
Diese Beispiele verwenden alle die Option -. Bei einer typischen Ver-
wendung von tset in einer Datei .profile oder .login werden auch die
Optionen -e und -k verwendet sowie häufig auch die Option -Q. Auf
diese Optionen wird hier nicht eingegangen, um die Beispiele auf das
Nötigste zu beschränken.
Wenn Sie das Terminal 2621 wählen möchten, können Sie die folgenden
Kommandosequenzen in Ihre Datei .login (bzw. .profile für Benutzer der
Bourne-Shell) stellen.
set noglob
eval `tset -s 2621`
unset noglob
Wenn Sie mit einem Schalter die Verbindung zu verschiedenen Anschlüs-
sen herstellen können (wodurch nicht mehr festgestellt werdem kann,
über welchen Anschluß die Verbindung hergestellt wird) und Sie öfters
verschiedene Terminals verwenden, können Sie die Terminals nach der
Geschwindigkeit speed bzw. der Baudrate auswählen. Im folgenden Bei-
spiel werden Sie von tset aufgefordert, einen Terminaltyp anzugeben,
wenn die Baudrate größer als 1200 ist (z. B. 9600 für ein Terminal,
das über eine RS-232-Leitung angeschlossen ist) und standardmäßig wer-
den Sie dazu aufgefordert, ein Wyse 50 zu verwenden. Wenn die Baudrate
kleiner oder gleich 1200 ist, wird ein 2621 ausgewählt. Beachten Sie
die Positionierung des Fragezeichens und der Hochkommata, damit > und
? von der Shell nicht interpretiert werden.
set noglob
eval `tset -s -m 'switch>1200:?wy' -m 'switch<=1200:2621'`
unset noglob
Der folgende Eintrag ist für Sie von Interesse, wenn Sie immer eine
Wählleitung sowie immer die gleiche Baudrate auf mehreren verschiede-
nen Terminalarten verwenden und wenn Sie meistens ein Terminal adm3a
verwenden.
set noglob
eval `tset -s ?adm3a`
unset noglob
Wenn Sie ein Terminal ausschließlich aufgrund der Baudrate auswählen
möchten, gehen Sie folgendermaßen vor:
set noglob
eval `tset -s -m '>1200:wy' 2621`
unset noglob
Seite 5 Reliant UNIX 5.44 Gedruckt 11/98
tset(1-ucb) (BSD Compatibility Package) tset(1-ucb)
Das folgende Beispiel setzt das Löschzeichen auf BACKSPACE und das
Kill-Zeichen auf CTRL-U. Erfolgt der Anschluß über eine Wählleitung,
wird ein Concept 100 für eine Geschwindigkeit kleiner oder gleich 1200
ausgewählt. Andernfalls wird der Benutzer aufgefordert, den Terminal-
typ anzugeben (der Standard ist in diesem Fall ein Wyse 50). Wenn über
den Anschluß eine direkte Wählleitung hergestellt wird, wird ein Con-
cept 100 als der Terminaltyp ausgewählt. Bei der Anmeldung über das
ARPANET wird als Terminaltyp Datamedia 2500 oder ein entsprechender
Emulator ausgewählt. Beachten Sie in diesem Beispiel den Gegenschräg-
strich nach dem Zeilenvorschubzeichen (NEWLINE) am Ende der ersten
Zeile.
set noglob
eval `tset -e -k^U -Q -s -m 'switch<=1200:concept100' -m \
'switch:?wy' -m dialup:concept100 -m arpanet:dm2500`
unset noglob
DATEIEN
.login
.profile
SIEHE AUCH
csh(1), sh(1), stty(1), vi(1), environ(5).
Seite 6 Reliant UNIX 5.44 Gedruckt 11/98