Annotation of cci/usr/src/man/man1/tset.1, revision 1.1

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

unix.superglobalmegacorp.com

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