 |
Index for Section 1 |
|
 |
Alphabetical listing for T |
|
 |
Bottom of page |
|
tset(1)
NAME
tset, reset - Initializes terminals
SYNOPSIS
tset [-echaracter | -Echaracter] [-icharacter] [-kcharacter] [-IQrsS] [-]
[-m] ['port_type] [baud_rate] [:type...']
reset [-echaracter | -Echaracter] [-icharacter] [-kcharacter] [-IQrsS] [-]
[-m] ['port_type] [baud_rate] [:type...']
The tset command initializes your terminal when you first log in to a
system.
OPTIONS
-echaracter
Sets the Erase character to character on all terminals, the default
being the Backspace character (on many systems, <Ctrl-h>). The
character can be typed directly or entered using circumflex notation,
for example, ^H.
-Echaracter
Sets the Erase character to character only if the terminal can
backspace.
-icharacter
Sets the Interrupt character to character for all terminals, the
default being <Ctrl-c> on many systems. character can be typed
directly or entered using circumflex notation, for example, ^C.
-I Suppresses transmission of terminal initialization strings.
-kcharacter
Sets the line Kill character to character on all terminals, the default
being <Ctrl-x> on many systems. The Kill character is left alone if -k
is not specified. character can be typed directly or entered using
circumflex notation, for example, ^X.
-m port_type [baud_rate]:type
Maps port type port_type, baud rate baud_rate, and terminal type type
at startup. (See DESCRIPTION.)
-Q Suppresses printing of Erase set to and Kill set to messages.
-r Prints the terminal type on the diagnostic output.
-s, -S
Prints the sequence of csh or sh commands to initialize the TERM and
TERMCAP environment variables, The shell for which commands are
produced depends on the setting of the SHELL variable.
- Writes the name of the terminal finally decided upon to standard
output. This is intended to be captured by the shell and placed in the
TERM environment variable.
DESCRIPTION
The tset command first determines the type of terminal involved, and then
does necessary initializations and mode settings, including terminal-
dependent processing such as setting Erase and Kill characters, setting or
resetting delays, and sending any sequences needed to properly initialize
the terminal.
The type of terminal attached to each port is specified by a parameter to
the getty running on that port, and passed to subprocesses through the TERM
environment variable. Type names for terminals can be found in the termcap
database. If a port is not permanently wired to a specific terminal (not
hardwired), it is given an appropriate generic identifier, such as dialup.
When no arguments are specified, tset simply reads the terminal type out of
the TERM variable and reinitializes the terminal.
When used in a start-up script ( .profile for sh users or .login for csh
users), it is desirable to give information about the type of terminal you
usually use on ports that are not hardwired. To specify the terminal type
for these ports, specify the -m (map) option, followed by the appropriate
port type identifier, an optional baud rate specification, and the terminal
type. (The effect is to map from some conditions to a terminal type, that
is, to tell tset "If I am on this kind of port, guess that I am on that
kind of terminal.") If more than one mapping is specified, the first
applicable mapping prevails. A missing port type identifier matches all
identifiers. Any of the alternate generic names given in the termcap
database can be used for the identifier.
A baud rate is specified as with stty, and is compared with the speed of
the diagnostic output (which should be the control terminal). The baud
rate test can be any combination of the following characters: . (dot), @
(at sign), relational operators such as < (left angle bracket), and !
(exclamation point). (@ is the same as "equals", and ! inverts the sense
of the test.) To avoid problems with metacharacters, place the entire
argument to -m within ' ' (single quotes); users of csh must also put a \
(backslash) before any ! (exclamation point) used here.
Therefore, entering the following example causes the terminal type to be
set to an adm3a if the port in use is a dialup at a speed greater than 300
baud; it is set to a dw2 if the port is a dialup at 300 baud or less:
tset -m 'dialup>300:adm3a' -m dialup:dw2 -m 'plugboard:?adm3a'
If the type finally determined by tset begins with a ? (question mark),
users are asked if they want that type. A null response means to use that
type; otherwise, another type can be entered. Thus, in the preceding case,
you are queried on a plugboard port as to whether you are actually using an
adm3a.
If no mapping applies and a final type argument not preceded by a -m is
given on the command line, then that type is used; otherwise, the type
passed to getty is taken to be the terminal type. This should always be the
case for hardwired ports.
It is usually desirable to return the terminal type, as finally determined
by tset, and information about the terminal's capabilities to a shell's
environment. Returning the terminal type can be done using the - option, if
you are using the Bourne shell, as follows:
export TERM; TERM= `tset - option ...`
or if you are using the C shell, as follows:
set noglob; eval `tset -s option ...`
It is also convenient to make an alias in your .cshrc file by entering:
alias ts 'set noglob; eval `tset -s \!*`'
The -s option allows the tset command to be invoked at any time to set the
terminal and environment. A similar effect can be achieved using a shell
function.
These commands cause tset to place the name of your terminal in the TERM
environment variable.
Once the terminal type is known, tset engages in terminal driver mode
setting. This normally involves sending an initialization sequence to the
terminal, setting the single-character Erase and (optionally) line Kill
(full-line erase) characters, and setting special character delays. Tab
and newline expansion are turned off during transmission of the terminal
initialization sequence.
If tset is invoked as reset, it sets cooked and echo modes, turns off
cbreak and RAW modes, turns on newline translation, and restores special
characters to a sensible state before any terminal-dependent processing is
done. Any special character that is found to be NUL or -1 is reset to its
default value. All options to tset can be used with reset.
The reset command is most useful after a program dies, leaving a terminal
in a state where characters are not echoed or the terminal does not respond
when you press <Return>, but the prompt is displayed. You might have to
enter <LF>reset<LF> to get reset to work, since carriage-return might not
work in this state. Often, none of this will echo.
NOTES
The tset command was designed to use the termcap database.
The following options are accepted for compatibility with earlier versions
of tset, but the use of these options is discouraged:
-d type
Equivalent to -m dialup:type.
-p type
Equivalent to -m plugboard:type.
-a :type
Equivalent to -m arpanet:type.
EXAMPLES
These examples all assume the use of Bourne shell and the - option. If you
use csh, use one of the variations previously described. Note that a
typical use of tset in a .profile or .login file also uses the -e and -k
options, and often uses the -n or -Q option as well. These options were not
included here to keep the examples short.
Note that some of these take up more than one line; however, you must enter
tset commands entirely on one line.
1. Assuming you are on a 2621, the following command line is suitable for
use in an interactive shell, but not for a .profile file, unless you
are always on a 2621:
export TERM; TERM=`tset - 2621`
2. You have an h19 at home that you dial up on, but your office terminal
is hardwired:
export TERM; TERM=`tset - -m dialup:h19"`
3. You have a switch that connects everything to everything, making it
nearly impossible to key on what port you are coming in on. You use a
VT100 terminal in your office that runs at 9600 baud, and you dial up
to switch ports at 1200 baud from home on a 2621. Sometimes you use
someone else's terminal at work, so you want it to ask you to make
sure what terminal type you have at high speeds, but at 1200 baud you
are always on a 2621. Note the placement of the question mark, and
the quotes to protect the < (left angle bracket) and ? (question mark)
characters from interpretation by the shell.
export TERM; TERM=`tset - -m 'switch>1200:?vt100' \
m- 'switch<=1200:2621'`
(Enter the command entirely on one line, not on two lines as shown
above.)
All of the preceding entries fall back, if none of the conditions
hold, on the terminal type specified by the value of the TERM variable
when tset is invoked.
4. The following entry is appropriate if you always dial up at the same
baud rate on many different kinds of terminals. Your most common
terminal is an adm3a. It always asks you what kind of terminal you are
on, defaulting to adm3a:
export TERM; TERM=`tset - ?adm3a`
5. If you want to key entirely on the baud rate, the following entry can
be used:
export TERM; TERM=`tset - -m 'switch>1200:?vt100' \
-m 'switch<=1200:2621'`
(Enter the command entirely on one line, not on two lines as shown
above.)
6. You dial up at 1200 baud or less on a concept100, sometimes over
switch ports and sometimes over regular dialups. You use various
terminals at speeds higher than 1200 over switch ports, most often the
terminal in your office, which is a VT100. However, sometimes you log
in from the university you used to attend over the ARPANET; in this
case, you are on an ALTO emulating a dm2500. You also often log in on
various hardwired ports, such as the console. You want your Erase
character set to <Ctrl-h> and your Kill character set to <Ctrl-u>, and
you do not want tset to print the Erase set to Backspace, Kill set to
Control U message.
export TERM
TERM=`tset -e -k^U -Q - "-m 'switch<=1200:concept100' \
"-m 'switch:?vt100' -m dialup:concept100 \
"-m arpanet: dm2500"`
(Enter the command entirely on one line, not on three lines as shown
above.)
FILES
/usr/share/lib/termcap
Terminal information database.
SEE ALSO
Commands: csh(1), sh(1), stty(1), tty(1)
Files: termcap(4)
 |
Index for Section 1 |
|
 |
Alphabetical listing for T |
|
 |
Top of page |
|