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

FreeBSD Manual Pages


home | help
tset(1)								       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
       option  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	confirms 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,
       interrupt and line kill characters (among many other  things)  are  set
       and  the	 terminal and tab initialization strings are sent to the stan-
       dard error output.  Finally, if the  erase,  interrupt  and  line  kill
       characters  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
       optional	 operator,  an	optional  baud rate specification, an optional
       colon (``:'') character and a terminal type.  The port type is a	string
       (delimited  by either the operator or the colon character).  The	opera-
       tor may be any combination of ``>'', ``<'',  ``@'',  and	 ``!'';	 ``>''
       means  greater  than,  ``<''  means less	than, ``@'' means equal	to and
       ``!'' inverts 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
       applicable 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
       dialup 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
       default 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