.TH CON 1
.SH NAME
con, telnet, rx, xms, xmr \- remote login, execution, and XMODEM file transfer
.SH SYNOPSIS
.B con
[
.B -CdnrRvs
]
[
.B -b
.I baud
]
[
.B -l
[
.I remuser
]
]
[
.B -c
.I cmd
]
.RI [ net !] machine
.PP
.B telnet
[
.B -dCrn
]
.RI [ net !] machine
.PP
.B cu
.I number
.PP
.B rx
[
.B -e
]
[
.B -l
.I remuser
]
.RI [ net !] machine
[
.I command-word ...
]
.PP
.B xms
.I file
.PP
.B xmr
.I file
.SH DESCRIPTION
.I Con
connects to the computer whose network address is
.IR net ! machine
and logs in if possible.
With no options, the account name used on the remote system is the same
as that on the local system.
Standard input and output go to the local machine.
.PP
Options are:
.TP
.B -b
sets the baud rate of a dial-up connection to
.IR baud .
.TP
.B -n
if the input is a file or pipe, do not hang up the connection when EOF is received,
but instead wait for the remote end to hang up.
.TP
.B -l
with an argument causes
.I remuser
to be used as the account name on the remote system.
Without an argument this option disables automatic login
and a normal login session ensues.
.TP
.B -C
forces cooked mode, that is, local echo.
.TP
.B -c
runs
.I cmd
as if it had been typed as a command from the escape mode.
This is used by
.IR cu .
.TP
.B -v
(verbose mode) causes information about connection attempts
to be output to standard error.  This can be useful when
trying to debug network connectivity.
.TP
.B -d
causes debugging information to be output to standard error.
.TP
.B -r
suppresses printing of any carriage return followed by a new line.
This is useful since carriage return is a printable character in
Plan 9.
.TP
.B -R
translates newlines to carriage returns and
.IR vice versa .
.TP
.B -s
strips received characters to 7 bits to forestall
misinterpretation of
.SM ASCII
with parity as
.SM UTF\c
\&.
.PP
The
.RB control\- \e
character is a local escape.
It prompts with
.BR >>> .
Legitimate responses to the prompt are
.TP
.B i
Send a quit [sic] signal to the remote machine.
.PD0
.TP
.B q
Exit.
.TP
.B b
Send a break.
.TP
.B .
Return from the escape.
.TP
.B !cmd
Run the command with the network connection as its
standard input and standard output.
Standard error will go to the screen.
This is useful for transmitting and receiving files
over the connections using programs such as
.IR xms .
.TP
.B r
Toggle printing of carriage returns.
.PD
.PP
.I Telnet
is similar to con, but uses the
.I telnet
protocol to communicate with the remote machine.
It shares
.I con's
.BR -C ,
.BR -d ,
.BR -n ,
and
.BR -r
options.
.PP
.I Rx
executes one shell command
on the remote machine as if logged in there,
but with local standard input and output.
A rudimentary shell environment is provided.
If the target is a Plan 9 machine,
.B $service
there will be
.BR rx .
The
.B \-e
option causes a zero length message to be written to the
connection when standard input is closed.
The
.B \-l
option causes
.I remuser
to be used on the remote machine if the remote
is a BSD machine.
.PP
Network addresses for both
.I con
and
.I rx
have the form
.IB network ! machine\f1.
Supported networks are those listed in
.BR /net .
.PP
The commands
.I xms
and
.I xmr
respectively send and receive a single file using the
XMODEM protocol.
They use standard input and standard output for communication
and are intended for use with
.IR con .
.SH EXAMPLES
.TP
.L
rx kremvax cat file1 >file2
Copy remote
.I file1
to local
.IR file2 .
.TP
.L
rx kremvax cat file1 '>file2'
Copy remote
.I file1
to remote
.IR file2.
.TP
.L
eqn paper | rx kremvax troff -ms | rx deepthought lp
Parallel processing:
do each stage of a pipeline on a different machine.
.SH SOURCE
.TF /sys/src/cmd/con
.TP
.B /sys/src/cmd/con
for
.IR con ,
.IR xms ,
and
.IR xmr .
.TP
.B /sys/src/cmd/ip
for
.IR telnet .
.SH BUGS
Under
.IR rx ,
a program
that should behave specially towards terminals may not: e.g.,
remote shells will not prompt.
Also under
.IR rx ,
the remote standard error and standard output are combined 
and go inseparably to the local standard output.
