cu(1C) Communication Commands cu(1C)NAMEcu - call another UNIX system
SYNOPSIScu [-c device | -l line] [-s speed] [-b bits] [-h] [-n] [-t] [-d] [-o
| -e] [-L] [-C] [-H] telno | systemname [local-cmd]
DESCRIPTION
The command cu calls up another UNIX system, a terminal, or possibly a
non-UNIX system. It manages an interactive conversation with possible
transfers of files. It is convenient to think of cu as operating in two
phases. The first phase is the connection phase in which the connection
is established. cu then enters the conversation phase. The -d option is
the only one that applies to both phases.
OPTIONScu accepts many options. The -c, -l, and -s options play a part in
selecting the medium. The remaining options are used in configuring the
line.
-b bits Forces bits to be the number of bits processed on the
line. bits is either 7 or 8. This allows connection
between systems with different character sizes. By
default, the character size of the line is set to the
same value as the current local terminal, but the char‐
acter size setting is affected by LC_CTYPE also.
-c device Forces cu to use only entries in the "Type" field (the
first field in the /etc/uucp/Devices file) that match
the user specified device, usually the name of a local
area network.
-C Runs the local-cmd specified at the end of the command
line instead of entering interactive mode. The stdin
and stdout of the command that is run refer to the
remote connection.
-d Prints diagnostic traces.
-e Sets an EVEN data parity. This option designates that
EVEN parity is to be generated for data sent to the
remote system.
-h Sets communication mode to half-duplex. This option
emulates local echo in order to support calls to other
computer systems that expect terminals to be set to
half-duplex mode.
-H Ignores one hangup. This allows the user to remain in
cu while the remote machine disconnects and places a
call back to the local machine. This option should be
used when connecting to systems with callback or dial‐
back modems. Once the callback occurs subsequent
hangups will cause cu to terminate. This option can be
specified more than once. For more information about
dialback configuration, see remote(4) and System Admin‐
istration Guide: IP Services
-l line Specifies a device name to use as the communication
line. This can be used to override the search that
would otherwise take place for the first available line
having the right speed. When the -l option is used
without the -s option, the speed of a line is taken
from the /etc/uucp/Devices file record in which line
matches the second field (the Line field). When the -l
and -s options are both used together, cu will search
the /etc/uucp/Devices file to check if the requested
speed for the requested line is available. If so, the
connection will be made at the requested speed, other‐
wise, an error message will be printed and the call
will not be made. In the general case where a speci‐
fied device is a directly connected asynchronous line
(for instance, /dev/term/a), a telephone number
(telno) is not required. The specified device need not
be in the /dev directory. If the specified device is
associated with an auto dialer, a telephone number must
be provided.
-L Goes through the login chat sequence specified in the
/etc/uucp/Systems file. For more information about the
chat sequence, see System Administration Guide: IP Ser‐
vices
-n Requests user prompt for telephone number. For added
security, this option will prompt the user to provide
the telephone number to be dialed, rather than taking
it from the command line.
-o Sets an ODD data parity. This option designates that
ODD parity is to be generated for data sent to the
remote system.
-s speed Specifies the transmission speed (300, 1200, 2400,
4800, 9600, 19200, 38400). The default value is "Any"
speed which will depend on the order of the lines in
the /etc/uucp/Devices file.
-t Dials a terminal which has been set to auto answer.
Appropriate mapping of carriage-return to carriage-
return-line-feed pairs is set.
OPERANDS
The following operands are supported:
telno When using an automatic dialler, specifies the tele‐
phone number with equal signs for secondary dial tone
or minus signs placed appropriately for delays of 4
seconds.
systemname Specifies a uucp system name, which can be used rather
than a telephone number; in this case, cu will obtain
an appropriate direct line or telephone number from a
system file.
USAGE
Connection Phase
cu uses the same mechanism that uucp(1C) does to establish a connec‐
tion. This means that it will use the uucp control files
/etc/uucp/Devices and /etc/uucp/Systems. This gives cu the ability to
choose from several different media to establish the connection. The
possible media include telephone lines, direct connections, and local
area networks (LAN). The /etc/uucp/Devices file contains a list of
media that are available on your system. The /etc/uucp/Systems file
contains information for connecting to remote systems, but it is not
generally readable.
Note: cu determines which /etc/uucp/Systems and /etc/uucp/Devices files
to use based upon the name used to invoke cu. In the simple case, this
name will be "cu", but you could also have created a link to cu with
another name, such as "pppcu", in which case cu would then look for a
"service=pppcu" entry in the /etc/uucp/Sysfiles file to determine
which /etc/uucp/Systems file to use.
The telno or systemname parameter from the command line is used to tell
cu what system you wish to connect to. This parameter can be blank, a
telephone number, a system name, or a LAN specific address.
telephone number A telephone number is a string consisting of
the tone dial characters (the digits 0 through
9, *, and #) plus the special characters = and
−. The equal sign designates a secondary dial
tone and the minus sign creates a 4 second
delay.
system name A system name is the name of any computer that
uucp can call; the uuname(1C) command prints a
list of these names.
LAN address The documentation for your LAN will show the
form of the LAN specific address.
If cu's default behavior is invoked (not using the -c or -l options),
cu will use the telno or systemname parameter to determine which medium
to use. If a telephone number is specified, cu will assume that you
wish to use a telephone line and it will select an automatic call unit
(ACU). Otherwise, cu will assume that it is a system name. cu will fol‐
low the uucp calling mechanism and use the /etc/uucp/Systems and
/etc/uucp/Devices files to obtain the best available connection. Since
cu will choose a speed that is appropriate for the medium that it
selects, you may not use the -s option when this parameter is a system
name.
The -c and -l options modify this default behavior. -c is most often
used to select a LAN by specifying a Type field from the
/etc/uucp/Devices file. You must include either a telno or systemname
value when using the -c option. If the connection to systemname fails,
a connection will be attempted using systemname as a LAN specific
address. The -l option is used to specify a device associated with a
direct connection. If the connection is truly a direct connection to
the remote machine, then there is no need to specify a systemname. This
is the only case where a telno or systemname parameter is unnecessary.
On the other hand, there may be cases in which the specified device
connects to a dialer, so it is valid to specify a telephone number. The
-c and -l options should not be specified on the same command line.
Conversation Phase
After making the connection, cu runs as two processes. The transmit
process reads data from the standard input and, except for lines begin‐
ning with ~, passes it to the remote system. The receive process
accepts data from the remote system and, except for lines beginning
with ~, passes it to the standard output. Normally, an automatic
DC3/DC1 protocol is used to control input from the remote so the buffer
is not overrun. Lines beginning with ~ have special meanings.
Commands
The transmit process interprets the following user initiated commands:
~. Terminates the conversation.
~! Escapes to an interactive shell on the local
system.
~!cmd... Runs cmd on the local system (via sh -c).
~$cmd... Runs cmd locally and send its output to the
remote system.
~%cd Changes the directory on the local system.
Note: ~!cd will cause the command to be run by
a sub-shell, probably not what was intended.
~%take from [to] Copies file from (on the remote system) to file
to on the local system. If to is omitted, the
from argument is used in both places.
~%put from [to] Copies file from (on local system) to file to
on remote system. If to is omitted, the from
argument is used in both places.
~~line Sends the line ~ line to the remote system.
~%break Transmits a BREAK to the remote system (which
can also be specified as ~%b).
~%debug Toggles the -d debugging option on or off
(which can also be specified as ~%d).
~t Prints the values of the termio structure vari‐
ables for the user's terminal (useful for
debugging).
~l Prints the values of the termio structure vari‐
ables for the remote communication line (useful
for debugging).
~%ifc Toggles between DC3/DC1 input control protocol
and no input control. This is useful when the
remote system does not respond properly to the
DC3 and DC1 characters (can also be specified
as ∼%nostop).
~%ofc Toggles the output flow control setting. When
enabled, outgoing data may be flow controlled
by the remote host (can also be specified as
∼%noostop).
~%divert Allows/disallows unsolicited diversions. That
is, diversions not specified by ~%take.
~%old Allows/disallows old style syntax for received
diversions.
~%nostop Same as ~%ifc.
The receive process normally copies data from the remote system to the
standard output of the local system. It may also direct the output to
local files.
The use of ~%put requires stty(1) and cat(1) on the remote side. It
also requires that the current erase and kill characters on the remote
system be identical to these current control characters on the local
system. Backslashes are inserted at appropriate places.
The use of ~%take requires the existence of echo(1) and cat(1) on the
remote system, and that the remote system must be using the Bourne
shell, sh. Also, tabs mode (see stty(1)) should be set on the remote
system if tabs are to be copied without expansion to spaces.
When cu is used on system X to connect to system Y and subsequently
used on system Y to connect to system Z, commands on system Y can be
executed by using ~~. Executing a tilde command reminds the user of the
local system uname. For example, uname can be executed on Z, X, and Y
as follows:
uname
Z
~[X]!uname
X
~~[Y]!uname
Y
In general, ~ causes the command to be executed on the original
machine. ~~ causes the command to be executed on the next machine in
the chain.
EXAMPLES
Example 1: Dialling a system
To dial a system whose telephone number is 9 1 201 555 1234 using
1200 baud (where dialtone is expected after the 9):
example% cu-s 1200 9=12015551234
If the speed is not specified, "Any" is the default value.
Example 2: Logging in to a system on a direct line
To login to a system connected by a direct line:
example% cu-l /dev/term/b
or
example% cu-l term/b
Example 3: Dialling a system with specific line and speed
To dial a system with a specific line and speed:
example% cu-s 1200 -l term/b
Example 4: Using a system name
To use a system name:
example% cu systemname
ENVIRONMENT VARIABLES
See environ(5) for descriptions of the following environment variables
that affect the execution of cu: LC_CTYPE, LC_MESSAGES, and NLSPATH.
EXIT STATUS
The following exit values are returned:
0 Successful completion.
>0 An error occurred.
FILES
/etc/uucp/Devices device file
/etc/uucp/Sysfiles system file
/etc/uucp/Systems system file
/var/spool/locks/* lock file
ATTRIBUTES
See attributes(5) for descriptions of the following attributes:
┌─────────────────────────────┬─────────────────────────────┐
│ ATTRIBUTE TYPE │ ATTRIBUTE VALUE │
├─────────────────────────────┼─────────────────────────────┤
│Availability │SUNWbnuu │
└─────────────────────────────┴─────────────────────────────┘
SEE ALSOcat(1), echo(1), stty(1), tip(1), uname(1), ct(1C), uuname(1C),
uucp(1C), remote(4), attributes(5), environ(5)
System Administration Guide: IP Services
NOTES
The cu utility takes the default action upon receipt of signals, with
the exception of:
SIGHUP Close the connection and terminate.
SIGINT Forward to the remote system.
SIGQUIT Forward to the remote system.
SIGUSR1 Terminate the cu process without the normal connection
closing sequence.
The cu command does not do any integrity checking on data it transfers.
Data fields with special cu characters may not be transmitted properly.
Depending on the interconnection hardware, it may be necessary to use a
~. to terminate the conversion, even if stty 0 has been used. Non-
printing characters are not dependably transmitted using either the
~%put or ~%take commands. ~%put and ~%take cannot be used over multi‐
ple links. Files must be moved one link at a time.
There is an artificial slowing of transmission by cu during the ~%put
operation so that loss of data is unlikely. Files transferred using
~%take or ~%put must contain a trailing newline, otherwise, the opera‐
tion will hang. Entering a <Control-D> command usually clears the hang
condition.
SunOS 5.10 11 May 2001 cu(1C)