Annotation of 43BSDTahoe/man/man1/tset.1, revision 1.1.1.1

1.1       root        1: .\" Copyright (c) 1980 Regents of the University of California.
                      2: .\" All rights reserved.  The Berkeley software License Agreement
                      3: .\" specifies the terms and conditions for redistribution.
                      4: .\"
                      5: .\"    @(#)tset.1      6.2 (Berkeley) 5/5/86
                      6: .\"
                      7: .TH TSET 1 "May 5, 1986"
                      8: .UC 4
                      9: .SH NAME
                     10: tset \- terminal dependent initialization
                     11: .SH SYNOPSIS
                     12: .B tset
                     13: [ options ] [
                     14: .B \-m
                     15: [ident][test baudrate]:type ] \&... [ type ]
                     16: .sp 1
                     17: .B reset
                     18: [ options ] [
                     19: .B \-m
                     20: [ident][test baudrate]:type ] \&... [ type ]
                     21: .SH DESCRIPTION
                     22: .I Tset
                     23: sets up your terminal when you first log in to a UNIX system.
                     24: It does terminal dependent processing such as setting
                     25: erase and kill characters, setting or resetting delays,
                     26: sending any sequences needed to properly initialized the terminal,
                     27: and the like.
                     28: It first determines the
                     29: .I type
                     30: of terminal involved,
                     31: and then does necessary initializations and mode settings.
                     32: The type of terminal attached to each \s-2UNIX\s0 port is specified in the
                     33: .IR /etc/ttys (5)
                     34: database.
                     35: Type names for terminals may be found in the
                     36: .IR termcap (5)
                     37: database.
                     38: If a port is not wired permanently to a specific terminal (not hardwired)
                     39: it will be given an appropriate generic identifier such as
                     40: .IR dialup .
                     41: .PP
                     42: In the case where no arguments are specified,
                     43: .I tset
                     44: simply reads the terminal type out of the environment variable TERM
                     45: and re-initializes the terminal.  The rest of this manual concerns
                     46: itself with mode and environment initialization,
                     47: typically done once at login, and options
                     48: used at initialization time to determine the terminal type and set up
                     49: terminal modes.
                     50: .PP
                     51: When used in a startup script (\fI\&.profile\fR for
                     52: .IR sh (1)
                     53: users or
                     54: .I \&.login
                     55: for
                     56: .IR csh (1)
                     57: users) it is desirable to give information about the type of terminal
                     58: you will usually use on ports which are not hardwired.
                     59: These ports are identified in
                     60: .I /etc/ttys
                     61: as
                     62: .I dialup
                     63: or
                     64: .I plugboard
                     65: or
                     66: .I arpanet,
                     67: etc.
                     68: To specify
                     69: what terminal type you usually use on these ports, the
                     70: .B \-m
                     71: (map) option flag is followed by the appropriate port type identifier,
                     72: an optional baud rate specification,
                     73: and the terminal type.
                     74: (The effect is to ``map'' from some conditions to a terminal type,
                     75: that is, to tell
                     76: .I tset
                     77: ``If I'm on this kind of port, guess that I'm on that kind of terminal''.)
                     78: If more than one mapping is specified, the first applicable mapping prevails.
                     79: A missing port type identifier matches all identifiers.
                     80: Any of the alternate generic names given in
                     81: .I termcap
                     82: may be used for the identifier.
                     83: .PP
                     84: A
                     85: .I baudrate
                     86: is specified as with
                     87: .IR stty (1),
                     88: and is compared with the
                     89: speed of the diagnostic output (which should be the control terminal).
                     90: The baud rate
                     91: .I test
                     92: may be any combination of:
                     93: .BR > ,
                     94: .BR @ ,
                     95: .BR < ,
                     96: and
                     97: .BR ! ;
                     98: .B @
                     99: means ``at''
                    100: and
                    101: .B !
                    102: inverts the sense of the test.  To avoid problems with metacharacters, it
                    103: is best to place the entire argument to
                    104: .B \-m
                    105: within ``\''' characters; users of
                    106: .IR csh (1)
                    107: must also put a ``\e'' before any ``!'' used here.
                    108: .PP
                    109: .KS
                    110: Thus
                    111: .IP
                    112: tset \-m \'dialup>300:adm3a\' -m dialup:dw2 -m \'plugboard:?adm3a\'
                    113: .KE
                    114: .LP
                    115: causes the terminal type to be set to an
                    116: .I adm3a
                    117: if the port in use is a dialup at a speed greater than 300 baud;
                    118: to a 
                    119: .I dw2
                    120: if the port is (otherwise) a dialup (i.e. at 300 baud or less).
                    121: (\fBNOTE:\fP the examples given here appear to take up more than
                    122: one line, for text processing reasons.  When you type in real
                    123: .I tset
                    124: commands, you must enter them entirely on one line.)
                    125: If the
                    126: .I type
                    127: finally determined by
                    128: .I tset
                    129: begins with a question mark,
                    130: the user is asked if s/he really wants that type.
                    131: A null response means to use that type;
                    132: otherwise, another type can be entered which will be used instead.
                    133: Thus, in the above case, the user will be queried on a plugboard port
                    134: as to whether they are actually using an
                    135: .IR adm3a .
                    136: .PP
                    137: If no mapping applies and a final
                    138: .I type
                    139: option, not preceded by a
                    140: .BR \-m ,
                    141: is given on the command line
                    142: then that type is used;
                    143: otherwise the type found in the
                    144: .I /etc/ttys
                    145: database will be taken to be the terminal type.
                    146: This should always be the case for hardwired ports.
                    147: .PP
                    148: It is usually desirable to return the terminal type, as finally determined by
                    149: .IR tset ,
                    150: and information about the terminal's capabilities
                    151: to a shell's environment.  This can be done using the
                    152: .B \-
                    153: option; using the Bourne shell,
                    154: .IR sh (1):
                    155: .IP
                    156: export TERM; TERM=\`tset \- \fIoptions...\fR\`
                    157: .LP
                    158: or using the C shell,
                    159: .IR csh (1):
                    160: .IP
                    161: setenv TERM \`tset - \fIoptions...\fR\`
                    162: .PP
                    163: With
                    164: .I csh
                    165: it is preferable to use the following command in your .login file to
                    166: initialize the TERM and TERMCAP environment variables at the same time.
                    167: .IP
                    168: eval \`tset -s \fIoptions...\fR\`
                    169: .PP
                    170: It is also convenient to make an alias in your .cshrc:
                    171: .IP
                    172: alias tset \'eval \`tset \-s \e!*\`\'
                    173: .PP
                    174: This allows the command:
                    175: .IP
                    176: tset 2621
                    177: .PP
                    178: to be invoked at any time to set the terminal and environment.
                    179: .B "Note to Bourne Shell users:"
                    180: It is
                    181: .B not
                    182: possible to get this aliasing effect with a shell script,
                    183: because shell scripts cannot set the environment of their parent.
                    184: (If a process could set its parent's environment,
                    185: none of this nonsense would be necessary in the first place.)
                    186: .PP
                    187: These commands cause
                    188: .I tset
                    189: to place the name of your terminal in the variable
                    190: TERM in the environment; see
                    191: .IR environ (7).
                    192: .PP
                    193: Once the terminal type is known,
                    194: .I tset
                    195: engages in terminal driver mode setting.
                    196: This normally involves sending an initialization sequence to the
                    197: terminal, setting the single character erase (and optionally
                    198: the line-kill (full line erase)) characters,
                    199: and setting special character delays.
                    200: Tab and newline expansion are turned off during transmission of
                    201: the terminal initialization sequence.
                    202: .PP
                    203: On terminals that can backspace but not overstrike
                    204: (such as a \s-2CRT\s0),
                    205: and when the erase character is the default erase character
                    206: (`#' on standard systems),
                    207: the erase character is changed to \s-2BACKSPACE\s0 (Control-H).
                    208: .PP
                    209: The options are:
                    210: .TP
                    211: .B \-e\fIc
                    212: set the erase character to be the named character
                    213: .I c
                    214: on all terminals,
                    215: the default being the backspace character on the terminal, usually ^H.
                    216: The character
                    217: .I c
                    218: can either be typed directly, or entered using the hat
                    219: notation used here.
                    220: .TP
                    221: .B \-k\fIc
                    222: is similar to
                    223: .B \-e
                    224: but for the line kill character rather than the erase character;
                    225: .I c
                    226: defaults to ^X (for purely historical reasons).
                    227: The kill characters is left alone if
                    228: .B \-k
                    229: is not specified.
                    230: The hat notation can also be used for this option.
                    231: .TP
                    232: .B \-i\fIc
                    233: is similar to
                    234: .B \-e
                    235: but for the interrupt character rather than the erase character;
                    236: .I c
                    237: defaults to ^C.  The hat notation can also be used for this option.
                    238: .TP
                    239: .B \-
                    240: The name of the terminal finally decided upon is output on the
                    241: standard output.
                    242: This is intended to be captured by the shell and placed in the
                    243: environment variable TERM.
                    244: .TP
                    245: .B \-s
                    246: Print the sequence of
                    247: .I csh
                    248: commands to initialize the environment variables TERM and TERMCAP based on
                    249: the name of the terminal finally decided upon.
                    250: .TP
                    251: .B \-n
                    252: On systems with the Berkeley 4BSD tty driver,
                    253: specifies that the new tty driver modes should be initialized for this terminal.
                    254: For a \s-2CRT\s0,
                    255: the CRTERASE and CRTKILL
                    256: modes are set only if the baud rate is 1200 or greater.
                    257: See tty(4) for more detail.
                    258: .TP
                    259: .B \-I
                    260: suppresses transmitting terminal initialization strings.
                    261: .TP
                    262: .B \-Q
                    263: suppresses printing the
                    264: ``Erase set to'' and ``Kill set to'' messages.
                    265: .PP
                    266: If
                    267: .B tset
                    268: is invoked as
                    269: .BR reset ,
                    270: it will set cooked and echo modes, turn off cbreak and raw modes,
                    271: turn on newline translation, and restore special characters
                    272: to a sensible state before any terminal dependent processing is done.
                    273: Any special character that is found to be \s-2NULL\s0
                    274: or ``\-1'' is reset to its default value.  All arguments to
                    275: .I tset
                    276: may be used with reset.
                    277: .PP
                    278: This is most useful after a program dies leaving a terminal in a funny
                    279: state. You may have to type ``\s-2<LF>\s0reset\s-2<LF>\s0'' to get it to work
                    280: since \s-2<CR>\s0 may not work in this state. Often none of this will echo.
                    281: .SH EXAMPLES
                    282: .PP
                    283: These examples all assume the Bourne shell and use the - option.
                    284: If you use
                    285: .IR csh ,
                    286: use one of the variations described above.
                    287: Note that a typical use of
                    288: .I tset
                    289: in a .profile or .login will also use the
                    290: .B \-e
                    291: and
                    292: .B \-k
                    293: options, and often the
                    294: .B \-n
                    295: or
                    296: .B \-Q
                    297: options as well.
                    298: These options have not been included here to keep the examples small.
                    299: (\fBNOTE:\fP some of the examples given here appear to take up more than
                    300: one line, for text processing reasons.  When you type in real
                    301: .I tset
                    302: commands, you must enter them entirely on one line.)
                    303: .PP
                    304: At the moment, you are on a 2621.
                    305: This is suitable for typing by hand but
                    306: not for a .profile, unless you are
                    307: .I always
                    308: on a 2621.
                    309: .IP
                    310: export TERM; TERM=\`tset \- 2621\`
                    311: .PP
                    312: You have an h19 at home which you dial up on, but your office terminal
                    313: is hardwired and known in /etc/ttys.
                    314: .IP
                    315: export TERM; TERM=\`tset \- \-m dialup:h19\`
                    316: .PP
                    317: You have a switch which connects everything to everything, making
                    318: it nearly impossible to key on what port you are coming in on.
                    319: You use a vt100 in your office at 9600 baud, and dial up to switch
                    320: ports at 1200 baud from home on a 2621.
                    321: Sometimes you use someone elses terminal at work,
                    322: so you want it to ask you to make sure what terminal
                    323: type you have at high speeds, but at 1200 baud you are
                    324: always on a 2621.
                    325: Note the placement of the question mark, and the quotes
                    326: to protect the greater than and question mark from
                    327: interpretation by the shell.
                    328: .IP
                    329: export TERM; TERM=\`tset \- \-m 'switch>1200:?vt100' \-m 'switch<=1200:2621'
                    330: .PP
                    331: All of the above entries will fall back on the terminal type
                    332: specified in
                    333: .I /etc/ttys
                    334: if none of the conditions hold.
                    335: The following entry is appropriate if
                    336: you always dial up, always at the same baud rate,
                    337: on many different kinds of terminals.
                    338: Your most common terminal is an adm3a.
                    339: It always asks you what kind of terminal you are on,
                    340: defaulting to adm3a.
                    341: .IP
                    342: export TERM; TERM=\`tset \- \?adm3a\`
                    343: .PP
                    344: If the file
                    345: .I /etc/ttys
                    346: is not properly installed and you want to
                    347: key entirely on the baud rate, the following can be used:
                    348: .IP
                    349: export TERM; TERM=\`tset \- \-m '>1200:vt100' 2621\`
                    350: .PP
                    351: Here is a fancy example to illustrate the power of
                    352: .I tset
                    353: and to hopelessly confuse anyone who has made it this far.
                    354: You dial up at 1200 baud or less on a concept100,
                    355: sometimes over switch ports and sometimes over regular dialups.
                    356: You use various terminals at speeds higher than 1200 over switch ports,
                    357: most often the terminal in your office, which is a vt100.
                    358: However, sometimes you log in from the university you used to go to,
                    359: over the ARPANET; in this case you are on an ALTO emulating a dm2500.
                    360: You also often log in on various hardwired ports, such as the console,
                    361: all of which are properly entered in
                    362: .IR /etc/ttys .
                    363: You want your erase character set to control H,
                    364: your kill character set to control U,
                    365: and don't want
                    366: .I tset
                    367: to print the ``Erase set to Backspace, Kill set to Control U'' message.
                    368: .IP
                    369: export TERM; TERM=\`tset \-e \-k^U \-Q \- \-m 'switch<=1200:concept100' \-m 'switch:?vt100' \-m dialup:concept100 \-m arpanet:dm2500\`
                    370: .SH FILES
                    371: .DT
                    372: /etc/ttys      port name to terminal type mapping database
                    373: .br
                    374: /etc/termcap   terminal capability database
                    375: .SH SEE\ ALSO
                    376: csh(1), sh(1), stty(1), ttys(5), termcap(5), environ(7)
                    377: .SH BUGS
                    378: .PP
                    379: The
                    380: .I tset
                    381: command is one of the first commands a user must master when getting
                    382: started on a UNIX system.
                    383: Unfortunately, it is one of the most complex,
                    384: largely because of the extra effort the user must go through
                    385: to get the environment of the login shell set.
                    386: Something needs to be done to make all this simpler,
                    387: either the
                    388: .IR login (1)
                    389: program should do this stuff,
                    390: or a default shell alias should be made,
                    391: or a way to set the environment of the parent should exist.
                    392: .PP
                    393: This program can't intuit personal choices for erase, interrupt
                    394: and line kill characters, so it leaves these set to the local system
                    395: standards.
                    396: .ig
                    397: .SH NOTES
                    398: For compatibility with earlier versions of
                    399: .I tset
                    400: a number of flags are accepted whose use is discouraged:
                    401: .TP 10
                    402: \fB\-d\fR type
                    403: equivalent to
                    404: .B \-m
                    405: dialup:type
                    406: .TP 10
                    407: \fB\-p\fR type
                    408: equivalent to
                    409: .B \-m
                    410: plugboard:type
                    411: .TP 10
                    412: \fB\-a\fR type
                    413: equivalent to
                    414: .B \-m
                    415: arpanet:type
                    416: .TP 10
                    417: \fB\-E\fR c
                    418: Sets the erase character to
                    419: .I c
                    420: only if the terminal can backspace.
                    421: .TP 10
                    422: \fB\-\fR
                    423: prints the terminal type on the standard output
                    424: .TP 10
                    425: \fB\-r\fR
                    426: prints the terminal type on the diagnostic output.
                    427: ..

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.