Annotation of 43BSDTahoe/man/man1/tset.1, revision 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.