386BSD 0.1 development
[unix-history] / usr / src / usr.bin / telnet / telnet.1
index 6b8897e..6dfcf24 100644 (file)
-.\" Copyright (c) 1983 The Regents of the University of California.
+.\" Copyright (c) 1983, 1990 The Regents of the University of California.
 .\" All rights reserved.
 .\"
 .\" All rights reserved.
 .\"
-.\" Redistribution and use in source and binary forms are permitted
-.\" provided that the above copyright notice and this paragraph are
-.\" duplicated in all such forms and that any documentation,
-.\" advertising materials, and other materials related to such
-.\" distribution and use acknowledge that the software was developed
-.\" by the University of California, Berkeley.  The name of the
-.\" University may not be used to endorse or promote products derived
-.\" from this software without specific prior written permission.
-.\" THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
-.\" IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
-.\" WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
+.\" Redistribution and use in source and binary forms, with or without
+.\" modification, are permitted provided that the following conditions
+.\" are met:
+.\" 1. Redistributions of source code must retain the above copyright
+.\"    notice, this list of conditions and the following disclaimer.
+.\" 2. Redistributions in binary form must reproduce the above copyright
+.\"    notice, this list of conditions and the following disclaimer in the
+.\"    documentation and/or other materials provided with the distribution.
+.\" 3. All advertising materials mentioning features or use of this software
+.\"    must display the following acknowledgement:
+.\"    This product includes software developed by the University of
+.\"    California, Berkeley and its contributors.
+.\" 4. Neither the name of the University nor the names of its contributors
+.\"    may be used to endorse or promote products derived from this software
+.\"    without specific prior written permission.
 .\"
 .\"
-.\"    @(#)telnet.1    6.6 (Berkeley) %G%
+.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+.\" ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+.\" SUCH DAMAGE.
 .\"
 .\"
-.TH TELNET 1 ""
-.UC 5
-.SH NAME
-telnet \- user interface to the \s-1TELNET\s0 protocol
-.SH SYNOPSIS
-telnet [ host [ port ] ]
-.SH DESCRIPTION
-.I Telnet
-is used to communicate with another host using the
-.B TELNET
+.\"    @(#)telnet.1    6.16 (Berkeley) 7/27/91
+.\"
+.Dd July 27, 1991
+.Dt TELNET 1
+.Os BSD 4.2
+.Sh NAME
+.Nm telnet
+.Nd User interface to the 
+.Tn TELNET
+protocol
+.Sh SYNOPSIS
+.Nm telnet
+.Op Fl d
+.Op Fl a
+.Op Fl n Ar tracefile
+.Op Fl e Ar escapechar
+.Oo
+.Op Fl l Ar user
+.Ar host
+.Op port
+.Oc
+.Sh DESCRIPTION
+The
+.Nm telnet
+command
+is used to communicate with another host using the 
+.Tn TELNET
 protocol.
 protocol.
-If 
-.I telnet
-is invoked without arguments, it enters command mode,
-indicated by its prompt (\*(lqtelnet>\*(rq).
+If
+.Nm telnet
+is invoked without the
+.Ar host
+argument, it enters command mode,
+indicated by its prompt
+.Pq Nm telnet\&> .
 In this mode, it accepts and executes the commands listed below.
 If it is invoked with arguments, it performs an
 In this mode, it accepts and executes the commands listed below.
 If it is invoked with arguments, it performs an
-.B open
-command (see below) with those arguments.
-.PP
+.Ic open
+command with those arguments.
+.Pp
+Options:
+.Bl -tag -width indent
+.It Fl d
+Sets the initial value of the
+.Ic debug
+toggle to
+.Dv TRUE
+.It Fl a
+Attempt automatic login.
+Currently, this sends the user name via the
+.Ev USER
+variable
+of the
+.Ev ENVIRON
+option if supported by the remote system.
+The name used is that of the current user as returned by
+.Xr getlogin 2
+if it agrees with the current user ID,
+otherwise it is the name associated with the user ID.
+.It Fl n Ar tracefile 
+Opens
+.Ar tracefile
+for recording trace information.
+See the
+.Ic set tracefile
+command below.
+.It Fl l Ar user 
+When connecting to the remote system, if the remote system
+understands the
+.Ev ENVIRON
+option, then
+.Ar user
+will be sent to the remote system as the value for the variable USER.
+This option implies the
+.Fl a
+option.
+This option may also be used with the
+.Ic open
+command.
+.It Fl e Ar escape char 
+Sets the initial
+.Nm
+.Nm telnet
+escape character to
+.Ar escape char.
+If
+.Ar escape char
+is ommitted, then
+there will be no escape character.
+.It Ar host
+Indicates the official name, an alias, or the Internet address
+of a remote host.
+.It Ar port
+Indicates a port number (address of an application).  If a number is
+not specified, the default
+.Nm telnet
+port is used.
+.El
+.Pp
 Once a connection has been opened,
 Once a connection has been opened,
-.I telnet
-enters an input mode.
-The input mode entered will be either \*(lqcharacter at a time\*(rq
-or \*(lqline by line\*(rq
+.Nm telnet
+will attempt to enable the
+.Dv TELNET LINEMODE
+option.
+If this fails, then
+.Nm telnet
+will revert to one of two input modes:
+either \*(Lqcharacter at a time\*(Rq
+or \*(Lqold line by line\*(Rq
 depending on what the remote system supports.
 depending on what the remote system supports.
-.PP
-In \*(lqcharacter at a time\*(rq mode, most
+.Pp
+When 
+.Dv LINEMODE
+is enabled, character processing is done on the
+local system, under the control of the remote system.  When input
+editing or character echoing is to be disabled, the remote system
+will relay that information.  The remote system will also relay
+changes to any special characters that happen on the remote
+system, so that they can take effect on the local system.
+.Pp
+In \*(Lqcharacter at a time\*(Rq mode, most
 text typed is immediately sent to the remote host for processing.
 text typed is immediately sent to the remote host for processing.
-.PP
-In \*(lqline by line\*(rq mode, all text is echoed locally,
+.Pp
+In \*(Lqold line by line\*(Rq mode, all text is echoed locally,
 and (normally) only completed lines are sent to the remote host.
 and (normally) only completed lines are sent to the remote host.
-The \*(lqlocal echo character\*(rq (initially \*(lq^E\*(rq) may be used
+The \*(Lqlocal echo character\*(Rq (initially \*(Lq^E\*(Rq) may be used
 to turn off and on the local echo
 (this would mostly be used to enter passwords
 without the password being echoed).
 to turn off and on the local echo
 (this would mostly be used to enter passwords
 without the password being echoed).
-.PP
-In either mode, if the
-.I localchars
-toggle is TRUE (the default in line mode; see below),
+.Pp
+If the 
+.Dv LINEMODE
+option is enabled, or if the
+.Ic localchars
+toggle is
+.Dv TRUE
+(the default for \*(Lqold line by line\*(Lq; see below),
 the user's
 the user's
-.IR quit ,
-.IR intr ,
+.Ic quit  ,
+.Ic intr ,
 and
 and
-.I flush
+.Ic flush
 characters are trapped locally, and sent as
 characters are trapped locally, and sent as
-.B TELNET
+.Tn TELNET
 protocol sequences to the remote side.
 protocol sequences to the remote side.
+If 
+.Dv LINEMODE
+has ever been enabled, then the user's
+.Ic susp
+and
+.Ic eof
+are also sent as
+.Tn TELNET
+protocol sequences,
+and
+.Ic quit
+is sent as a 
+.Dv TELNET ABORT
+instead of 
+.Dv BREAK
 There are options (see
 There are options (see
-.B toggle
-.I autoflush
+.Ic toggle
+.Ic autoflush
 and
 and
-.B toggle
-.I autosynch
+.Ic toggle
+.Ic autosynch
 below)
 which cause this action to flush subsequent output to the terminal
 (until the remote host acknowledges the
 below)
 which cause this action to flush subsequent output to the terminal
 (until the remote host acknowledges the
-.B TELNET
+.Tn TELNET
 sequence) and flush previous terminal input
 (in the case of
 sequence) and flush previous terminal input
 (in the case of
-.I quit
+.Ic quit
 and
 and
-.IR intr ).
-.PP
+.Ic intr  ) .
+.Pp
 While connected to a remote host,
 While connected to a remote host,
-.I telnet
+.Nm telnet
 command mode may be entered by typing the
 command mode may be entered by typing the
-.I telnet
-\*(lqescape character\*(rq (initially \*(lq^]\*(rq).
+.Nm telnet
+\*(Lqescape character\*(Rq (initially \*(Lq^]\*(Rq).
 When in command mode, the normal terminal editing conventions are available.
 When in command mode, the normal terminal editing conventions are available.
-.PP
-.B COMMANDS
-.PP
-The following commands are available.
+.Pp
+The following
+.Nm telnet
+commands are available.
 Only enough of each command to uniquely identify it need be typed
 (this is also true for arguments to the
 Only enough of each command to uniquely identify it need be typed
 (this is also true for arguments to the
-.BR mode ,
-.BR set ,
-.BR toggle ,
+.Ic mode  ,
+.Ic set ,
+.Ic toggle  ,
+.Ic unset ,
+.Ic slc  ,
+.Ic environ ,
 and
 and
-.B display
+.Ic display
 commands).
 commands).
-.PP
-.TP
-.B open \fIhost\fP \fR[\fP \fIport\fP \fR]\fP
-.br
+.Pp
+.Bl -tag -width "mode type"
+.It Ic close
+Close a
+.Tn TELNET
+session and return to command mode.
+.It Ic display Ar argument ... 
+Displays all, or some, of the
+.Ic set
+and
+.Ic toggle
+values (see below).
+.It Ic mode Ar type 
+.Ar Type
+is one of several options, depending on the state of the
+.Tn TELNET
+session.
+The remote host is asked for permission to go into the requested mode.
+If the remote host is capable of entering that mode, the requested
+mode will be entered.
+.Bl -tag -width Ar
+.It Ic character
+Disable the
+.Dv TELNET LINEMODE
+option, or, if the remote side does not understand the
+.Dv LINEMODE
+option, then enter \*(Lqcharacter at a time\*(Lq mode.
+.It Ic line
+Enable the
+.Dv TELNET LINEMODE
+option, or, if the remote side does not understand the
+.Dv LINEMODE
+option, then attempt to enter \*(Lqold-line-by-line\*(Lq mode.
+.It Ic isig Pq Ic \-isig 
+Attempt to enable (disable) the 
+.Dv TRAPSIG
+mode of the 
+.Dv LINEMODE
+option.
+This requires that the 
+.Dv LINEMODE
+option be enabled.
+.It Ic edit Pq Ic \-edit 
+Attempt to enable (disable) the 
+.Dv EDIT
+mode of the 
+.Dv LINEMODE
+option.
+This requires that the 
+.Dv LINEMODE
+option be enabled.
+.It Ic softtabs Pq Ic \-softtabs 
+Attempt to enable (disable) the 
+.Dv SOFT_TAB
+mode of the 
+.Dv LINEMODE
+option.
+This requires that the 
+.Dv LINEMODE
+option be enabled.
+.It Ic litecho Pq Ic \-litecho 
+Attempt to enable (disable) the 
+.Dv LIT_ECHO
+mode of the 
+.Dv LINEMODE
+option.
+This requires that the 
+.Dv LINEMODE
+option be enabled.
+.It Ic \&?
+Prints out help information for the
+.Ic mode
+command.
+.El
+.It Xo
+.Ic open Ar host
+.Oo Op Fl l
+.Ar user
+.Oc Ns Oo Fl
+.Ar port Oc
+.Xc
 Open a connection to the named host.
 If no port number
 Open a connection to the named host.
 If no port number
-is specified, 
-.I telnet
+is specified,
+.Nm telnet
 will attempt to contact a
 will attempt to contact a
-.B TELNET
+.Tn TELNET
 server at the default port.
 server at the default port.
-The host specification may be either a host name (see 
-.IR hosts (5))
-or an Internet address specified in the \*(lqdot notation\*(rq (see
-.IR inet (3N)).
-.TP
-.B close
-.br
-Close a
-.B TELNET
-session and return to command mode.
-.TP
-.B quit
-.br
+The host specification may be either a host name (see
+.Xr hosts  5  )
+or an Internet address specified in the \*(Lqdot notation\*(Rq (see
+.Xr inet 3 ) .
+The
+.Op Fl l
+option may be used to specify the user name
+to be passed to the remote system via the
+.Ev ENVIRON
+option.
+When connecting to a non-standard port,
+.Nm telnet
+omits any automatic initiation of
+.Tn TELNET
+options.  When the port number is preceeded by a minus sign,
+the inital option negotiation is done.
+After establishing a connection, the file
+.Pa \&.telnetrc
+in the
+users home directory is opened.  Lines begining with a # are
+comment lines.  Blank lines are ignored.  Lines that begin
+without whitespace are the start of a machine entry.  The
+first thing on the line is the name of the machine that is
+being connected to.  The rest of the line, and successive
+lines that begin with whitespace are assumed to be
+.Nm telnet
+commands and are processed as if they had been typed
+in manually to the
+.Nm telnet
+command prompt.
+.It Ic quit
 Close any open
 Close any open
-.B TELNET
-session and exit 
-.IR telnet .
+.Tn TELNET
+session and exit
+.Nm telnet  .
 An end of file (in command mode) will also close a session and exit.
 An end of file (in command mode) will also close a session and exit.
-.TP
-.B z
-.br
-Suspend
-.IR telnet .
-This command only works when the user is using the 
-.IR csh (1).
-.TP
-.B mode \fItype\fP
-.br
-.I Type
-is either
-.I line
-(for \*(lqline by line\*(rq mode)
-or
-.I character
-(for \*(lqcharacter at a time\*(rq mode).
-The remote host is asked for permission to go into the requested mode.
-If the remote host is capable of entering that mode, the requested
-mode will be entered.
-.TP
-.B status
-.br
-Show the current status of 
-.IR telnet .
-This includes the peer one is connected to, as well
-as the current mode.
-.TP
-.B display \fR[\fP \fIargument...\fP \fR]\fP
-.br
-Displays all, or some, of the
-.B set
-and
-.B toggle
-values (see below).
-.TP
-.B ? \fR[\fP \fIcommand\fP \fR]\fP
-.br
-Get help.  With no arguments,
-.I telnet
-prints a help summary.
-If a command is specified, 
-.I telnet
-will print the help information for just that command.
-.TP
-.B send \fIarguments\fP
-.br
+.It Ic send Ar arguments 
 Sends one or more special character sequences to the remote host.
 The following are the arguments which may be specified
 (more than one argument may be specified at a time):
 Sends one or more special character sequences to the remote host.
 The following are the arguments which may be specified
 (more than one argument may be specified at a time):
-.RS
-.TP
-.I escape
-.br
-Sends the current
-.I telnet
-escape character (initially \*(lq^]\*(rq).
-.TP
-.I synch
-.br
+.Pp
+.Bl -tag -width escape
+.It Ic abort
 Sends the
 Sends the
-.B TELNET SYNCH
+.Dv TELNET ABORT
+(Abort
+processes)
 sequence.
 sequence.
-This sequence causes the remote system to discard all previously typed
-(but not yet read) input.
-This sequence is sent as TCP urgent
-data (and may not work if the remote system is a 4.2 BSD system -- if
-it doesn't work, a lower case \*(lqr\*(rq may be echoed on the terminal).
-.TP
-.I brk
-.br
-Sends the
-.B TELNET BRK
-(Break) sequence, which may have significance to the remote
-system.
-.TP
-.I ip
-.br
+.It Ic ao
 Sends the
 Sends the
-.B TELNET IP
-(Interrupt Process) sequence, which should cause the remote
-system to abort the currently running process.
-.TP
-.I ao
-.br
-Sends the
-.B TELNET AO
+.Dv TELNET AO
 (Abort Output) sequence, which should cause the remote system to flush
 all output
 (Abort Output) sequence, which should cause the remote system to flush
 all output
-.B from
+.Em from
 the remote system
 the remote system
-.B to
+.Em to
 the user's terminal.
 the user's terminal.
-.TP
-.I ayt
-.br
+.It Ic ayt
 Sends the
 Sends the
-.B TELNET AYT
+.Dv TELNET AYT
 (Are You There)
 sequence, to which the remote system may or may not choose to respond.
 (Are You There)
 sequence, to which the remote system may or may not choose to respond.
-.TP
-.I ec
-.br
+.It Ic brk
 Sends the
 Sends the
-.B TELNET EC
+.Dv TELNET BRK
+(Break) sequence, which may have significance to the remote
+system.
+.It Ic ec
+Sends the
+.Dv TELNET EC
 (Erase Character)
 sequence, which should cause the remote system to erase the last character
 entered.
 (Erase Character)
 sequence, which should cause the remote system to erase the last character
 entered.
-.TP
-.I el
-.br
+.It Ic el
 Sends the
 Sends the
-.B TELNET EL
+.Dv TELNET EL
 (Erase Line)
 sequence, which should cause the remote system to erase the line currently
 being entered.
 (Erase Line)
 sequence, which should cause the remote system to erase the line currently
 being entered.
-.TP
-.I ga
-.br
+.It Ic eof
+Sends the
+.Dv TELNET EOF
+(End Of File)
+sequence.
+.It Ic eor
 Sends the
 Sends the
-.B TELNET GA
+.Dv TELNET EOR
+(End of Record)
+sequence.
+.It Ic escape
+Sends the current
+.Nm telnet
+escape character (initially \*(Lq^\*(Rq).
+.It Ic ga
+Sends the
+.Dv TELNET GA
 (Go Ahead)
 sequence, which likely has no significance to the remote system.
 (Go Ahead)
 sequence, which likely has no significance to the remote system.
-.TP
-.I nop
-.br
+.It Ic getstatus
+If the remote side supports the
+.Dv TELNET STATUS
+command,
+.Ic getstatus
+will send the subnegotiation to request that the server send
+its current option status.
+.It Ic ip
+Sends the
+.Dv TELNET IP
+(Interrupt Process) sequence, which should cause the remote
+system to abort the currently running process.
+.It Ic nop
 Sends the
 Sends the
-.B TELNET NOP
+.Dv TELNET NOP
 (No OPeration)
 sequence.
 (No OPeration)
 sequence.
-.TP
-.I ?
-.br
+.It Ic susp
+Sends the
+.Dv TELNET SUSP
+(SUSPend process)
+sequence.
+.It Ic synch
+Sends the
+.Dv TELNET SYNCH
+sequence.
+This sequence causes the remote system to discard all previously typed
+(but not yet read) input.
+This sequence is sent as
+.Tn TCP
+urgent
+data (and may not work if the remote system is a
+.Bx 4.2
+system -- if
+it doesn't work, a lower case \*(Lqr\*(Rq may be echoed on the terminal).
+.It Ic \&?
 Prints out help information for the
 Prints out help information for the
-.B send
+.Ic send
 command.
 command.
-.RE
-.TP
-.B set \fIargument value\fP
-.br
-Set any one of a number of
-.I telnet
-variables to a specific value.
-The special value \*(lqoff\*(rq turns off the function associated with
-the variable.
+.El
+.It Ic set Ar argument value 
+.It Ic unset Ar argument value 
+The
+.Ic set
+command will set any one of a number of
+.Nm telnet
+variables to a specific value or to
+.Dv TRUE .
+The special value
+.Ic off
+turns off the function associated with
+the variable, this is equivalent to using the
+.Ic unset
+command.
+The
+.Ic unset
+command will disable or set to
+.Dv FALSE
+any of the specified functions.
 The values of variables may be interrogated with the
 The values of variables may be interrogated with the
-.B display
+.Ic display
 command.
 command.
-The variables which may be specified are:
-.RS
-.TP
-.I echo
-.br
-This is the value (initially \*(lq^E\*(rq) which, when in
-\*(lqline by line\*(rq mode, toggles between doing local echoing
+The variables which may be set or unset, but not toggled, are
+listed here.  In addition, any of the variables for the
+.Ic toggle
+command may be explicitly set or unset using
+the
+.Ic set
+and
+.Ic unset
+commands.
+.Bl -tag -width escape
+.It Ic echo
+This is the value (initially \*(Lq^E\*(Rq) which, when in
+\*(Lqline by line\*(Rq mode, toggles between doing local echoing
 of entered characters (for normal processing), and suppressing
 echoing of entered characters (for entering, say, a password).
 of entered characters (for normal processing), and suppressing
 echoing of entered characters (for entering, say, a password).
-.TP
-.I escape
-.br
-This is the
-.I telnet
-escape character (initially \*(lq^[\*(rq) which causes entry
-into
-.I telnet
-command mode (when connected to a remote system).
-.TP
-.I interrupt
-.br
+.It Ic eof
+If
+.Nm telnet
+is operating in
+.Dv LINEMODE
+or \*(Lqold line by line\*(Rq mode, entering this character
+as the first character on a line will cause this character to be
+sent to the remote system.
+The initial value of the eof character is taken to be the terminal's
+.Ic eof
+character.
+.It Ic erase
 If
 If
-.I telnet
+.Nm telnet
 is in
 is in
-.I localchars
+.Ic localchars
 mode (see
 mode (see
-.B toggle
-.I localchars
-below)
-and the
-.I interrupt
+.Ic toggle
+.Ic localchars
+below),
+.Sy and
+if
+.Nm telnet
+is operating in \*(Lqcharacter at a time\*(Rq mode, then when this
 character is typed, a
 character is typed, a
-.B TELNET IP
+.Dv TELNET EC
 sequence (see
 sequence (see
-.B send
-.I ip
+.Ic send
+.Ic ec
 above)
 above)
-is sent to the remote host.
-The initial value for the interrupt character is taken to be
+is sent to the remote system.
+The initial value for the erase character is taken to be
 the terminal's
 the terminal's
-.B intr
+.Ic erase
 character.
 character.
-.TP
-.I quit
-.br
+.It Ic escape
+This is the
+.Nm telnet
+escape character (initially \*(Lq^[\*(Rq) which causes entry
+into
+.Nm telnet
+command mode (when connected to a remote system).
+.It Ic flushoutput
 If
 If
-.I telnet
+.Nm telnet
 is in
 is in
-.I localchars
+.Ic localchars
 mode (see
 mode (see
-.B toggle
-.I localchars
+.Ic toggle
+.Ic localchars
 below)
 and the
 below)
 and the
-.I quit
+.Ic flushoutput
 character is typed, a
 character is typed, a
-.B TELNET BRK
+.Dv TELNET AO
 sequence (see
 sequence (see
-.B send
-.I brk
+.Ic send
+.Ic ao
 above)
 is sent to the remote host.
 above)
 is sent to the remote host.
-The initial value for the quit character is taken to be
+The initial value for the flush character is taken to be
 the terminal's
 the terminal's
-.B quit
+.Ic flush
 character.
 character.
-.TP
-.I flushoutput
-.br
+.It Ic interrupt
 If
 If
-.I telnet
+.Nm telnet
 is in
 is in
-.I localchars
+.Ic localchars
 mode (see
 mode (see
-.B toggle
-.I localchars
+.Ic toggle
+.Ic localchars
 below)
 and the
 below)
 and the
-.I flushoutput
+.Ic interrupt
 character is typed, a
 character is typed, a
-.B TELNET AO
+.Dv TELNET IP
 sequence (see
 sequence (see
-.B send
-.I ao
+.Ic send
+.Ic ip
 above)
 is sent to the remote host.
 above)
 is sent to the remote host.
-The initial value for the flush character is taken to be
+The initial value for the interrupt character is taken to be
 the terminal's
 the terminal's
-.B flush
+.Ic intr
 character.
 character.
-.TP
-.I erase
-.br
+.It Ic kill
 If
 If
-.I telnet
+.Nm telnet
 is in
 is in
-.I localchars
+.Ic localchars
 mode (see
 mode (see
-.B toggle
-.I localchars
+.Ic toggle
+.Ic localchars
 below),
 below),
-.B and
+.Ic and
 if
 if
-.I telnet
-is operating in \*(lqcharacter at a time\*(rq mode, then when this
+.Nm telnet
+is operating in \*(Lqcharacter at a time\*(Rq mode, then when this
 character is typed, a
 character is typed, a
-.B TELNET EC
+.Dv TELNET EL
 sequence (see
 sequence (see
-.B send
-.I ec
+.Ic send
+.Ic el
 above)
 is sent to the remote system.
 above)
 is sent to the remote system.
-The initial value for the erase character is taken to be
+The initial value for the kill character is taken to be
 the terminal's
 the terminal's
-.B erase
+.Ic kill
 character.
 character.
-.TP
-.I kill
-.br
+.It Ic lnext
+If
+.Nm telnet
+is operating in
+.Dv LINEMODE
+or \*(Lqold line by line\*(Lq mode, then this character is taken to
+be the terminal's
+.Ic lnext
+character.
+The initial value for the lnext character is taken to be
+the terminal's
+.Ic lnext
+character.
+.It Ic quit
 If
 If
-.I telnet
+.Nm telnet
 is in
 is in
-.I localchars
+.Ic localchars
 mode (see
 mode (see
-.B toggle
-.I localchars
-below),
-.B and
-if
-.I telnet
-is operating in \*(lqcharacter at a time\*(rq mode, then when this
+.Ic toggle
+.Ic localchars
+below)
+and the
+.Ic quit
 character is typed, a
 character is typed, a
-.B TELNET EL
+.Dv TELNET BRK
 sequence (see
 sequence (see
-.B send
-.I el
+.Ic send
+.Ic brk
 above)
 above)
-is sent to the remote system.
+is sent to the remote host.
+The initial value for the quit character is taken to be
+the terminal's
+.Ic quit
+character.
+.It Ic reprint
+If
+.Nm telnet
+is operating in
+.Dv LINEMODE
+or \*(Lqold line by line\*(Lq mode, then this character is taken to
+be the terminal's
+.Ic reprint
+character.
+The initial value for the reprint character is taken to be
+the terminal's
+.Ic reprint
+character.
+.It Ic start
+If the
+.Dv TELNET TOGGLE-FLOW-CONTROL
+option has been enabled,
+then this character is taken to
+be the terminal's
+.Ic start
+character.
 The initial value for the kill character is taken to be
 the terminal's
 The initial value for the kill character is taken to be
 the terminal's
-.B kill
+.Ic start
 character.
 character.
-.TP
-.I eof
-.br
+.It Ic stop
+If the
+.Dv TELNET TOGGLE-FLOW-CONTROL
+option has been enabled,
+then this character is taken to
+be the terminal's
+.Ic stop
+character.
+The initial value for the kill character is taken to be
+the terminal's
+.Ic stop
+character.
+.It Ic susp
 If
 If
-.I telnet
-is operating in \*(lqline by line\*(rq mode, entering this character
-as the first character on a line will cause this character to be
-sent to the remote system.
-The initial value of the eof character is taken to be the terminal's
-.B eof
+.Nm telnet
+is in
+.Ic localchars
+mode, or
+.Dv LINEMODE
+is enabled, and the
+.Ic suspend
+character is typed, a
+.Dv TELNET SUSP
+sequence (see
+.Ic send
+.Ic susp
+above)
+is sent to the remote host.
+The initial value for the suspend character is taken to be
+the terminal's
+.Ic suspend
+character.
+.It Ic tracefile
+Thi is the file to which the output, caused by
+.Ic netdata
+or
+.Ic option
+tracing being
+.Dv TRUE ,
+will be written.  If it is set to
+.Dq Fl ,
+then tracing information will be written to standard output (the default).
+.It Ic worderase
+If
+.Nm telnet
+is operating in
+.Dv LINEMODE
+or \*(Lqold line by line\*(Lq mode, then this character is taken to
+be the terminal's
+.Ic worderase
 character.
 character.
-.RE
-.TP
-.B toggle \fIarguments...\fP
+The initial value for the worderase character is taken to be
+the terminal's
+.Ic worderase
+character.
+.It Ic \&?
+Displays the legal
+.Ic set
+.Pq Ic unset
+commands.
+.El
+.It Ic slc Ar state 
+The
+.Ic slc
+command (Set Local Characters) is used to set
+or change the state of the the special
+characters when the 
+.Dv TELNET LINEMODE
+option has
+been enabled.  Special characters are characters that get
+mapped to 
+.Tn TELNET
+commands sequences (like
+.Ic ip
+or
+.Ic quit  )
+or line editing characters (like
+.Ic erase
+and
+.Ic kill  ) .
+By default, the local special characters are exported.
+.Bl -tag -width Fl
+.It Ic export
+Switch to the local defaults for the special characters.  The
+local default characters are those of the local terminal at
+the time when
+.Nm telnet
+was started.
+.It Ic import
+Switch to the remote defaults for the special characters.
+The remote default characters are those of the remote system
+at the time when the 
+.Tn TELNET
+connection was established.
+.It Ic check
+Verify the current settings for the current special characters.
+The remote side is requested to send all the current special
+character settings, and if there are any discrepencies with
+the local side, the local side will switch to the remote value.
+.It Ic \&?
+Prints out help information for the
+.Ic slc
+command.
+.El
+.It Ic environ Ar arguments... 
+The
+.Ic environ
+command is used to manipulate the
+the variables that my be sent through the
+.Dv TELNET ENVIRON
+option.
+The initial set of variables is taken from the users
+environment, with only the
+.Ev DISPLAY
+and
+.Ev PRINTER
+variables being exported by default.
+The
+.Ev USER
+variable is also exported if the
+.Fl a
+or
+.Fl l
+options are used.
 .br
 .br
+Valid arguments for the
+.Ic environ
+command are:
+.Bl -tag -width Fl
+.It Ic define Ar variable value 
+Define the variable
+.Ar variable
+to have a value of
+.Ar value.
+Any variables defined by this command are automatically exported.
+The
+.Ar value
+may be enclosed in single or double quotes so
+that tabs and spaces may be included.
+.It Ic undefine Ar variable 
+Remove
+.Ar variable
+from the list of environment variables.
+.It Ic export Ar variable 
+Mark the variable
+.Ar variable
+to be exported to the remote side.
+.It Ic unexport Ar variable 
+Mark the variable
+.Ar variable
+to not be exported unless
+explicitly asked for by the remote side.
+.It Ic list
+List the current set of environment variables.
+Those marked with a
+.Cm *
+will be sent automatically,
+other variables will only be sent if explicitly requested.
+.It Ic \&?
+Prints out help information for the
+.Ic environ
+command.
+.El
+.It Ic toggle Ar arguments ... 
 Toggle (between
 Toggle (between
-TRUE
+.Dv TRUE
 and
 and
-FALSE)
+.Dv FALSE )
 various flags that control how
 various flags that control how
-.I telnet
+.Nm telnet
 responds to events.
 responds to events.
+These flags may be set explicitly to
+.Dv TRUE
+or
+.Dv FALSE
+using the
+.Ic set
+and
+.Ic unset
+commands listed above.
 More than one argument may be specified.
 The state of these flags may be interrogated with the
 More than one argument may be specified.
 The state of these flags may be interrogated with the
-.B display
+.Ic display
 command.
 Valid arguments are:
 command.
 Valid arguments are:
-.RS
-.TP
-.I localchars
-.br
-If this is
-TRUE,
-then the
-.IR flush ,
-.IR interrupt ,
-.IR quit ,
-.IR erase ,
-and
-.I kill
-characters (see
-.B set
-above) are recognized locally, and transformed into (hopefully) appropriate
-.B TELNET
-control sequences
-(respectively
-.IR ao ,
-.IR ip ,
-.IR brk ,
-.IR ec ,
-and
-.IR el ;
-see
-.B send
-above).
-The initial value for this toggle is TRUE in \*(lqline by line\*(rq mode,
-and FALSE in \*(lqcharacter at a time\*(rq mode.
-.TP
-.I autoflush
-.br
+.Bl -tag -width Ar
+.It Ic autoflush
 If
 If
-.I autoflush
+.Ic autoflush
 and
 and
-.I localchars
+.Ic localchars
 are both
 are both
-TRUE,
+.Dv TRUE ,
 then when the
 then when the
-.IR ao ,
-.IR intr ,
+.Ic ao  ,
 or
 or
-.I quit
+.Ic quit
 characters are recognized (and transformed into
 characters are recognized (and transformed into
-.B TELNET
+.Tn TELNET
 sequences; see
 sequences; see
-.B set
+.Ic set
 above for details),
 above for details),
-.I telnet
+.Nm telnet
 refuses to display any data on the user's terminal
 until the remote system acknowledges (via a
 refuses to display any data on the user's terminal
 until the remote system acknowledges (via a
-.B TELNET
-.I Timing Mark
+.Dv TELNET TIMING MARK
 option)
 that it has processed those
 option)
 that it has processed those
-.B TELNET
+.Tn TELNET
 sequences.
 sequences.
-The initial value for this toggle is TRUE if the terminal user had not
-done an "stty noflsh", otherwise FALSE (see
-.IR stty(1)).
-.TP
-.I autosynch
+The initial value for this toggle is
+.Dv TRUE
+if the terminal user had not
+done an "stty noflsh", otherwise
+.Dv FALSE
+(see
+.Xr stty  1  ) .
+.It Ic autosynch
 If
 If
-.I autosynch
+.Ic autosynch
 and
 and
-.I localchars
+.Ic localchars
 are both
 are both
-TRUE,
+.Dv TRUE ,
 then when either the
 then when either the
-.I intr
+.Ic intr
 or
 or
-.I quit
+.Ic quit
 characters is typed (see
 characters is typed (see
-.B set
+.Ic set
 above for descriptions of the
 above for descriptions of the
-.I intr
+.Ic intr
 and
 and
-.I quit
+.Ic quit
 characters), the resulting
 characters), the resulting
-.B TELNET
+.Tn TELNET
 sequence sent is followed by the
 sequence sent is followed by the
-.B TELNET SYNCH
+.Dv TELNET SYNCH
 sequence.
 This procedure
 sequence.
 This procedure
-.B should
+.Ic should
 cause the remote system to begin throwing away all previously
 typed input until both of the
 cause the remote system to begin throwing away all previously
 typed input until both of the
-.B TELNET
+.Tn TELNET
 sequences have been read and acted upon.
 sequences have been read and acted upon.
-The initial value of this toggle is FALSE.
-.TP
-.I crmod
-.br
+The initial value of this toggle is
+.Dv FALSE .
+.It Ic binary
+Enable or disable the
+.Dv TELNET BINARY
+option on both input and output.
+.It Ic inbinary
+Enable or disable the
+.Dv TELNET BINARY
+option on input.
+.It Ic outbinary
+Enable or disable the
+.Dv TELNET BINARY
+option on output.
+.It Ic crlf
+If this is
+.Dv TRUE ,
+then carriage returns will be sent as
+.Li <CR><LF> .
+If this is
+.Dv FALSE ,
+then carriage returns will be send as
+.Li <CR><NUL> .
+The initial value for this toggle is
+.Dv FALSE .
+.It Ic crmod
 Toggle carriage return mode.
 When this mode is enabled, most carriage return characters received from
 the remote host will be mapped into a carriage return followed by
 Toggle carriage return mode.
 When this mode is enabled, most carriage return characters received from
 the remote host will be mapped into a carriage return followed by
@@ -545,50 +938,149 @@ This mode does not affect those characters typed by the user, only
 those received from the remote host.
 This mode is not very useful unless the remote host
 only sends carriage return, but never line feed.
 those received from the remote host.
 This mode is not very useful unless the remote host
 only sends carriage return, but never line feed.
-The initial value for this toggle is FALSE.
-.TP
-.I debug
-.br
+The initial value for this toggle is
+.Dv FALSE .
+.It Ic debug
 Toggles socket level debugging (useful only to the
 Toggles socket level debugging (useful only to the
-.IR super user ).
-The initial value for this toggle is FALSE.
-.TP
-.I options
-.br
+.Ic super user  ) .
+The initial value for this toggle is
+.Dv FALSE .
+.It Ic localchars
+If this is
+.Dv TRUE ,
+then the
+.Ic flush  ,
+.Ic interrupt ,
+.Ic quit  ,
+.Ic erase ,
+and
+.Ic kill
+characters (see
+.Ic set
+above) are recognized locally, and transformed into (hopefully) appropriate
+.Tn TELNET
+control sequences
+(respectively
+.Ic ao  ,
+.Ic ip ,
+.Ic brk  ,
+.Ic ec ,
+and
+.Ic el  ;
+see
+.Ic send
+above).
+The initial value for this toggle is
+.Dv TRUE
+in \*(Lqold line by line\*(Rq mode,
+and
+.Dv FALSE
+in \*(Lqcharacter at a time\*(Rq mode.
+When the
+.Dv LINEMODE
+option is enabled, the value of
+.Ic localchars
+is ignored, and assumed to always be
+.Dv TRUE .
+If
+.Dv LINEMODE
+has ever been enabled, then
+.Ic quit
+is sent as
+.Ic abort  ,
+and
+.Ic eof and
+.B suspend
+are sent as
+.Ic eof and
+.Ic susp ,
+see
+.Ic send
+above).
+.It Ic netdata
+Toggles the display of all network data (in hexadecimal format).
+The initial value for this toggle is
+.Dv FALSE .
+.It Ic options
 Toggles the display of some internal
 Toggles the display of some internal
-.I telnet
+.Nm telnet
 protocol processing (having to do with
 protocol processing (having to do with
-.B TELNET
+.Tn TELNET
 options).
 options).
-The initial value for this toggle is FALSE.
-.TP
-.I netdata
-.br
-Toggles the display of all network data (in hexadecimal format).
-The initial value for this toggle is FALSE.
-.TP
-.I ?
-.br
+The initial value for this toggle is
+.Dv FALSE .
+.It Ic prettydump
+When the
+.Ic netdata
+toggle is enabled, if
+.Ic prettydump
+is enabled the output from the
+.Ic netdata
+command will be formated in a more user readable format.
+Spaces are put between each character in the output, and the
+begining of any
+.Tn TELNET
+escape sequence is preceeded by a '*' to aid in locating them.
+.It Ic \&?
 Displays the legal
 Displays the legal
-.B toggle
+.Ic toggle
 commands.
 commands.
-.RE
-.SH BUGS
-.PP
-There is no adequate way for dealing with flow control.
-.PP
+.El
+.It Ic z
+Suspend
+.Nm telnet  .
+This command only works when the user is using the
+.Xr csh  1  .
+.It Ic \&! Op Ar command 
+Execute a single command in a subshell on the local
+system.  If
+.Ic command
+is ommitted, then an interactive
+subshell is invoked.
+.It Ic status
+Show the current status of
+.Nm telnet  .
+This includes the peer one is connected to, as well
+as the current mode.
+.It Ic \&? Op Ar command 
+Get help.  With no arguments,
+.Nm telnet
+prints a help summary.
+If a command is specified,
+.Nm telnet
+will print the help information for just that command.
+.El
+.Sh ENVIRONMENT
+.Nm Telnet
+uses at least the
+.Ev HOME ,
+.Ev SHELL ,
+.Ev DISPLAY ,
+and
+.Ev TERM
+environent variables.
+Other envirnoment variables may be propogated
+to the other side via the
+.Dv TELNET ENVIRON
+option.
+.Sh FILES
+.Bl -tag -width ~/.telnetrc -compact
+.It Pa ~/.telnetrc
+user customized telnet startup values
+.El
+.Sh HISTORY
+The
+.Nm Telnet
+command appeared in
+.Bx 4.2 .
+.Sh NOTES
+.Pp
 On some remote systems, echo has to be turned off manually when in
 On some remote systems, echo has to be turned off manually when in
-\*(lqline by line\*(rq mode.
-.PP
-There is enough settable state to justify a
-.RI . telnetrc
-file.
-.PP
-No capability for a
-.RI . telnetrc
-file is provided.
-.PP
-In \*(lqline by line\*(rq mode, the terminal's
-.I eof
+\*(Lqold line by line\*(Rq mode.
+.Pp
+In \*(Lqold line by line\*(Rq mode or 
+.Dv LINEMODE
+the terminal's
+.Ic eof
 character is only recognized (and sent to the remote system)
 when it is the first character on a line.
 character is only recognized (and sent to the remote system)
 when it is the first character on a line.