Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages


home | help
tset(1)			    General Commands Manual		       tset(1)

       tset, reset - terminal initialization

       tset [-IQVqrs] [-] [-e ch] [-i ch] [-k ch] [-m mapping] [terminal]
       reset [-IQVqrs] [-] [-e ch] [-i ch] [-k ch] [-m mapping]	[terminal]

       Tset initializes	terminals.  Tset first determines the type of terminal
       that you	are using.  This determination is done as follows,  using  the
       first terminal type found.

       1. The terminal argument	specified on the command line.

       2. The value of the TERM	environmental variable.

       3.  (BSD	 systems only.)	The terminal type associated with the standard
       error output device in the /etc/ttys file.  (On Linux and System-V-like
       UNIXes,	getty  does  this  job	by  setting TERM according to the type
       passed to it by /etc/inittab.)

       4. The default terminal type, ``unknown''.

       If the terminal type was	not specified on the command-line, the -m  op-
       tion mappings are then applied (see below for more information).	 Then,
       if the terminal type begins with	a question mark	(``?''), the  user  is
       prompted	for confirmation of the	terminal type.	An empty response con-
       firms the type, or, another type	can be entered to specify a new	 type.
       Once  the terminal type has been	determined, the	terminfo entry for the
       terminal	is retrieved.  If no terminfo entry is found for the type, the
       user is prompted	for another terminal type.

       Once  the  terminfo entry is retrieved, the window size,	backspace, in-
       terrupt and line	kill characters	(among many other things) are set  and
       the  terminal  and  tab initialization strings are sent to the standard
       error output.  Finally, if the erase, interrupt and line	 kill  charac-
       ters have changed, or are not set to their default values, their	values
       are displayed to	the standard error output.

       When invoked as reset, tset sets	 cooked	 and  echo  modes,  turns  off
       cbreak and raw modes, turns on newline translation and resets any unset
       special characters to their default values before  doing	 the  terminal
       initialization  described  above.   This	is useful after	a program dies
       leaving a terminal in an	abnormal state.	 Note, you may have to type


       (the line-feed character	is normally control-J) to get the terminal  to
       work,  as  carriage-return  may	no  longer work	in the abnormal	state.
       Also, the terminal will often not echo the command.

       The options are as follows:

       -q   The	terminal type is displayed to the  standard  output,  and  the
	    terminal  is not initialized in any	way.  The option `-' by	itself
	    is equivalent but archaic.

       -e   Set	the erase character to ch.

       -I   Do not send	the terminal or	tab initialization strings to the ter-

       -Q   Don't  display  any	 values	for the	erase, interrupt and line kill

       -V   reports the	version	of ncurses which was used in this program, and

       -i   Set	the interrupt character	to ch.

       -k   Set	the line kill character	to ch.

       -m   Specify  a	mapping	from a port type to a terminal.	 See below for
	    more information.

       -r   Print the terminal type to the standard error output.

       -s   Print the sequence of shell	commands to initialize the environment
	    variable  TERM  to	the standard output.  See the section below on
	    setting the	environment for	details.

       The arguments for the -e, -i, and -k options may	either be  entered  as
       actual characters or by using the `hat' notation, i.e. control-h	may be
       specified as ``^H'' or ``^h''.

       It is often desirable to	enter the terminal type	and information	 about
       the terminal's capabilities into	the shell's environment.  This is done
       using the -s option.

       When the	-s option is specified,	the commands to	enter the  information
       into  the  shell's  environment are written to the standard output.  If
       the SHELL environmental variable	ends in	``csh'', the commands are  for
       csh,  otherwise,	they are for sh.  Note,	the csh	commands set and unset
       the shell variable noglob, leaving it unset.  The following line	in the
       .login or .profile files	will initialize	the environment	correctly:

	   eval	`tset -s options ... `

       When the	terminal is not	hardwired into the system (or the current sys-
       tem information is  incorrect)  the  terminal  type  derived  from  the
       /etc/ttys  file	or  the	TERM environmental variable is often something
       generic like network, dialup, or	unknown.   When	 tset  is  used	 in  a
       startup	script	it is often desirable to provide information about the
       type of terminal	used on	such ports.

       The purpose of the -m option is to map from some	set of conditions to a
       terminal	type, that is, to tell tset ``If I'm on	this port at a partic-
       ular speed, guess that I'm on that kind of terminal''.

       The argument to the -m option consists of an optional port type,	an op-
       tional operator,	an optional baud rate specification, an	optional colon
       (``:'') character and a terminal	type.  The port	type is	a string  (de-
       limited	by  either the operator	or the colon character).  The operator
       may be any combination of ``>'',	``<'', ``@'', and ``!'';  ``>''	 means
       greater than, ``<'' means less than, ``@'' means	equal to and ``!'' in-
       verts the sense of the test.  The baud rate is specified	 as  a	number
       and  is	compared  with	the  speed of the standard error output	(which
       should be the control terminal).	 The terminal type is a	string.

       If the terminal type is not specified on	the command line, the -m  map-
       pings are applied to the	terminal type.	If the port type and baud rate
       match the mapping, the terminal type specified in the mapping  replaces
       the current type.  If more than one mapping is specified, the first ap-
       plicable	mapping	is used.

       For example, consider the following  mapping:  dialup>9600:vt100.   The
       port type is dialup , the operator is >,	the baud rate specification is
       9600, and the terminal type is vt100.  The result of this mapping is to
       specify	that  if  the  terminal	 type  is dialup, and the baud rate is
       greater than 9600 baud, a terminal type of vt100	will be	used.

       If no baud rate is specified, the terminal type	will  match  any  baud
       rate.   If  no port type	is specified, the terminal type	will match any
       port type.  For example,	-m dialup:vt100	-m :?xterm will	cause any  di-
       alup  port,  regardless of baud rate, to	match the terminal type	vt100,
       and any non-dialup port type to match the terminal type ?xterm.	 Note,
       because of the leading question mark, the user will be queried on a de-
       fault port as to	whether	they are actually using	an xterm terminal.

       No whitespace characters	are  permitted	in  the	 -m  option  argument.
       Also,  to avoid problems	with meta-characters, it is suggested that the
       entire -m option	argument be placed within single quote characters, and
       that csh	users insert a backslash character (``\'') before any exclama-
       tion marks (``!'').

       The tset	command	appeared in BSD	3.0.  The ncurses  implementation  was
       lightly	adapted	 from the 4.4BSD sources for a terminfo	environment by
       Eric S. Raymond <>.

       The tset	utility	has been provided for backward-compatibility with  BSD
       environments  (under  most modern UNIXes, /etc/inittab and getty(1) can
       set TERM	appropriately for each dial-up line; this  obviates  what  was
       tset's  most  important	use).  This implementation behaves like	4.4BSD
       tset, with a few	exceptions specified here.

       The -S option of	BSD tset no longer works; it prints an	error  message
       to  stderr  and dies.  The -s option only sets TERM, not	TERMCAP.  Both
       these changes are because the TERMCAP variable is no  longer  supported
       under  terminfo-based  ncurses, which makes tset	-S useless (we made it
       die noisily rather than silently	induce lossage).

       There was an undocumented 4.4BSD	feature	that invoking tset via a  link
       named  `TSET`  (or via any other	name beginning with an upper-case let-
       ter) set	the terminal to	use upper-case only.  This  feature  has  been

       The -A, -E, -h, -u and -v options were deleted from the tset utility in
       4.4BSD. None of them were documented in 4.3BSD and all are  of  limited
       utility	at  best.  The	-a, -d,	and -p options are similarly not docu-
       mented or useful, but were retained as they appear to be	in  widespread
       use.   It is strongly recommended that any usage	of these three options
       be changed to use the -m	option instead.	 The -n	 option	 remains,  but
       has  no effect.	The -adnp options are therefore	omitted	from the usage
       summary above.

       It is still permissible to specify the -e, -i, and -k  options  without
       arguments, although it is strongly recommended that such	usage be fixed
       to explicitly specify the character.

       As of 4.4BSD, executing tset as reset no	longer implies the -Q  option.
       Also, the interaction between the - option and the terminal argument in
       some historic implementations of	tset has been removed.

       The tset	command	uses the SHELL and TERM	environment variables.

	    system port	name to	terminal type mapping database	(BSD  versions

	    terminal capability	database

       csh(1), sh(1), stty(1), tty(4), termcap(5), ttys(5), environ(7)



Want to link to this manual page? Use this URL:

home | help