BSD 2.11 - man page for tset (bsd section 1)

Linux & Unix Commands - Search Man Pages

Man Page or Keyword Search:   man
Select Man Page Set:       apropos Keyword Search (sections above)


TSET(1) 										  TSET(1)

NAME
       tset - terminal dependent initialization

SYNOPSIS
       tset [ options ] [ -m [ident][test baudrate]:type ] ... [ type ]

       reset [ options ] [ -m [ident][test baudrate]:type ] ... [ type ]

DESCRIPTION
       Tset  sets  up  your  terminal  when  you first log in to a UNIX system.  It does terminal
       dependent processing such as setting erase  and	kill  characters,  setting  or	resetting
       delays,	sending  any sequences needed to properly initialized the terminal, and the like.
       It first determines the type of terminal involved, and then does necessary initializations
       and  mode  settings.   The type of terminal attached to each UNIX port is specified in the
       /etc/ttys(5) database.  Type names for terminals may be found in the termcap(5)	database.
       If a port is not wired permanently to a specific terminal (not hardwired) it will be given
       an appropriate generic identifier such as dialup.

       In the case where no arguments are specified, tset simply reads the terminal type  out  of
       the  environment  variable  TERM and re-initializes the terminal.  The rest of this manual
       concerns itself with mode and environment initialization, typically done  once  at  login,
       and options used at initialization time to determine the terminal type and set up terminal
       modes.

       When used in a startup script (.profile for sh(1) users or .login for csh(1) users) it  is
       desirable  to  give  information  about the type of terminal you will usually use on ports
       which are not hardwired.  These ports are identified in /etc/ttys as dialup  or	plugboard
       or  arpanet,  etc.   To	specify what terminal type you usually use on these ports, the -m
       (map) option flag is 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'm on this kind of port, guess that I'm 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 termcap may be used for the identifier.

       A  baudrate is specified as with stty(1), and is compared with the speed of the diagnostic
       output (which should be the control terminal).  The baud rate test may be any  combination
       of:  >,	@, <, and !; @ means ``at'' and !  inverts the sense of the test.  To avoid prob-
       lems with metacharacters, it is best to place the entire argument to -m within ``''' char-
       acters; users of csh(1) must also put a ``\'' before any ``!'' used here.

       Thus

	      tset -m 'dialup>300:adm3a' -m dialup:dw2 -m 'plugboard:?adm3a'

       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; to a dw2 if the port is (otherwise) a dialup (i.e. at 300  baud  or
       less).  (NOTE: the examples given here appear to take up more than one line, for text pro-
       cessing reasons.  When you type in real tset commands, you must enter them entirely on one
       line.)	If  the  type finally determined by tset begins with a question mark, the user is
       asked if s/he really wants that type.  A null response means to use that type;  otherwise,
       another type can be entered which will be used instead.	Thus, in the above case, the user
       will be queried on a plugboard port as to whether they are actually using an adm3a.

       If no mapping applies and a final type option, not preceded by a -m, is given on the  com-
       mand  line then that type is used; otherwise the type found in the /etc/ttys database will
       be 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.  This can be done
       using the - option; using the Bourne shell, sh(1):

	      export TERM; TERM=`tset - options...`

       or using the C shell, csh(1):

	      setenv TERM `tset - options...`

       With csh it is preferable to use the following command in your .login file  to  initialize
       the TERM and TERMCAP environment variables at the same time.

	      eval `tset -s options...`

       It is also convenient to make an alias in your .cshrc:

	      alias tset 'eval `tset -s \!*`'

       This allows the command:

	      tset 2621

       to  be  invoked	at  any  time  to set the terminal and environment.  Note to Bourne Shell
       users: It is not possible to get this aliasing effect with a shell script,  because  shell
       scripts	cannot set the environment of their parent.  (If a process could set its parent's
       environment, none of this nonsense would be necessary in the first place.)

       These commands cause tset to place the name of your terminal in the variable TERM  in  the
       environment; see environ(7).

       Once  the terminal type is known, tset engages in terminal driver mode setting.	This nor-
       mally involves sending an initialization sequence to  the  terminal,  setting  the  single
       character  erase  (and optionally the 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.

       On  terminals  that  can  backspace but not overstrike (such as a CRT), and when the erase
       character is the default erase character (`#' on standard systems), the erase character is
       changed to BACKSPACE (Control-H).

       The options are:

       -ec    set  the	erase character to be the named character c on all terminals, the default
	      being the backspace character on the terminal, usually ^H.   The	character  c  can
	      either be typed directly, or entered using the hat notation used here.

       -kc    is similar to -e but for the line kill character rather than the erase character; c
	      defaults to ^X (for purely historical reasons).  The kill characters is left  alone
	      if -k is not specified.  The hat notation can also be used for this option.

       -ic    is similar to -e but for the interrupt character rather than the erase character; c
	      defaults to ^C.  The hat notation can also be used for this option.

       -      The name of the terminal finally decided upon is output  on  the	standard  output.
	      This is intended to be captured by the shell and placed in the environment variable
	      TERM.

       -s     Print the sequence of csh commands to initialize the environment variables TERM and
	      TERMCAP based on the name of the terminal finally decided upon.

       -n     On  systems  with  the  Berkeley 4BSD tty driver, specifies that the new tty driver
	      modes should be initialized for this terminal.  For a CRT, the CRTERASE and CRTKILL
	      modes  are  set  only  if  the  baud  rate is 1200 or greater.  See tty(4) for more
	      detail.

       -I     suppresses transmitting terminal initialization strings.

       -Q     suppresses printing the ``Erase set to'' and ``Kill set to'' messages.

       If tset is invoked as reset, it will set cooked and echo modes, turn off  cbreak  and  raw
       modes,  turn  on  newline  translation, and restore special characters to a sensible state
       before any terminal dependent processing is done.  Any special character that is found  to
       be  NULL  or ``-1'' is reset to its default value.  All arguments to tset may be used with
       reset.

       This is most useful after a program dies leaving a terminal in a funny state. You may have
       to  type  ``<LF>reset<LF>'' to get it to work since <CR> may not work in this state. Often
       none of this will echo.

EXAMPLES
       These examples all assume the Bourne shell and use the - option.  If you use csh, use  one
       of  the	variations  described  above.	Note  that a typical use of tset in a .profile or
       .login will also use the -e and -k options, and often the -n or -Q options as well.  These
       options	have not been included here to keep the examples small.  (NOTE: some of the exam-
       ples given here appear to take up more than one line, for text processing  reasons.   When
       you type in real tset commands, you must enter them entirely on one line.)

       At the moment, you are on a 2621.  This is suitable for typing by hand but not for a .pro-
       file, unless you are always on a 2621.

	      export TERM; TERM=`tset - 2621`

       You have an h19 at home which you dial up on, but your office terminal  is  hardwired  and
       known in /etc/ttys.

	      export TERM; TERM=`tset - -m dialup:h19`

       You  have a switch which connects everything to everything, making it nearly impossible to
       key on what port you are coming in on.  You use a vt100 in your office at 9600  baud,  and
       dial up to switch ports at 1200 baud from home on a 2621.  Sometimes you use someone elses
       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 ques-
       tion mark, and the quotes to protect the greater than and question mark	from  interpreta-
       tion by the shell.

	      export TERM; TERM=`tset - -m 'switch>1200:?vt100' -m 'switch<=1200:2621'

       All  of	the  above  entries will fall back on the terminal type specified in /etc/ttys if
       none of the conditions hold.  The following entry is appropriate if you	always	dial  up,
       always at the same baud rate, on many different kinds of terminals.  Your most common ter-
       minal is an adm3a.  It always asks you what kind of terminal you  are  on,  defaulting  to
       adm3a.

	      export  TERM;  TERM=`tset - .PP If the file /etc/ttys is not properly installed and
	      you want to key entirely on the baud rate, the following can be used:

	      export TERM; TERM=`tset - -m '>1200:vt100' 2621`

       Here is a fancy example to illustrate the power of tset and to hopelessly  confuse  anyone
       who  has  made  it  this far.  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  go  to,	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,  all  of	which  are  properly  entered  in
       /etc/ttys.   You  want  your  erase character set to control H, your kill character set to
       control U, and don't 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`

FILES
       /etc/ttys port name to terminal type mapping database
       /etc/termcap   terminal capability database

SEE ALSO
       csh(1), sh(1), stty(1), ttys(5), termcap(5), environ(7)

BUGS
       The tset command is one of the first commands a user must master when getting started on a
       UNIX  system.   Unfortunately, it is one of the most complex, largely because of the extra
       effort the user must go through to get the environment of the login shell set.	Something
       needs  to  be  done  to	make all this simpler, either the login(1) program should do this
       stuff, or a default shell alias should be made, or a way to set	the  environment  of  the
       parent should exist.

       This  program can't intuit personal choices for erase, interrupt and line kill characters,
       so it leaves these set to the local system standards.

NOTES
       For compatibility with earlier versions of tset a number of flags are accepted  whose  use
       is discouraged:

       -d type	 equivalent to -m dialup:type

       -p type	 equivalent to -m plugboard:type

       -a type	 equivalent to -m arpanet:type

       -	 prints the terminal type on the standard output

       -r	 prints the terminal type on the diagnostic output.

4th Berkeley Distribution		  March 28, 1997				  TSET(1)
Unix & Linux Commands & Man Pages : ©2000 - 2018 Unix and Linux Forums


All times are GMT -4. The time now is 05:58 AM.

Unix & Linux Forums Content Copyright©1993-2018. All Rights Reserved.
×
UNIX.COM Login
Username:
Password:  
Show Password





Not a Forum Member?
Forgot Password?