KERMIT(1C) UNIX Programmer's Manual KERMIT(1C) NAME kermit - kermit file transfer SYNOPSIS kermit [ option ...] [file ...] DESCRIPTION _K_e_r_m_i_t is a file transfer program that allows files to be moved between machines of many different operating systems and architectures. This man page describes version 4C of the program. Arguments are optional. If _K_e_r_m_i_t is executed without argu- ments, it will enter command mode. Otherwise, _k_e_r_m_i_t will read the arguments off the command line and interpret them. The following notation is used in command descriptions: _f_n A Unix file specification, possibly containing either of the "wildcard" characters '*' or '?' ('*' matches all character strings, '?' matches any sin- gle character). _f_n_1 A Unix file specification which may not contain '*' or '?'. _r_f_n A remote file specification in the remote system's own syntax, which may denote a single file or a group of files. _r_f_n_1 A remote file specification which should denote only a single file. _n A decimal number between 0 and 94. _c A decimal number between 0 and 127 representing the value of an ASCII character. _c_c A decimal number between 0 and 31, or else exactly 127, representing the value of an ASCII control character. [ ] Any field in square braces is optional. {_x,_y,_z} Alternatives are listed in curly braces. _K_e_r_m_i_t command line options may specify either actions or settings. If _K_e_r_m_i_t is invoked with a command line that specifies no actions, then it will issue a prompt and begin interactive dialog. Action options specify either protocol transactions or terminal connection. Printed 7/26/87 LOCAL 1 KERMIT(1C) UNIX Programmer's Manual KERMIT(1C) COMMAND LINE OPTIONS -s _f_n Send the specified file or files. If _f_n contains wildcard (meta) characters, the Unix shell expands it into a list. If _f_n is '-' then _K_e_r_m_i_t sends from standard input, which must come from a file: 9 kermit -s - < foo.bar 9 or a parallel process: 9 ls -l | kermit -s - You cannot use this mechanism to send terminal typein. If you want to send a file whose name is "-" you can precede it with a path name, as in 9 kermit -s ./- -r Receive a file or files. Wait passively for files to arrive. -k Receive (passively) a file or files, sending them to standard output. This option can be used in several ways: 9 kermit -k Displays the incoming files on your screen; to be used only in "local mode" (see below). 9 kermit -k > fn1 Sends the incoming file or files to the named file, _f_n_1. If more than one file arrives, all are con- catenated together into the single file _f_n_1. 9 kermit -k | command Pipes the incoming data (single or multiple files) to the indicated command, as in 9 kermit -k | sort > sorted.stuff -a _f_n_1 If you have specified a file transfer option, you may specify an alternate name for a single file with the -a option. For example, 9 kermit -s foo -a bar sends the file foo telling the receiver that its name is bar. If more than one file arrives or is sent, only the first file is affected by the -a option: 9 kermit -ra baz Printed 7/26/87 LOCAL 2 KERMIT(1C) UNIX Programmer's Manual KERMIT(1C) stores the first incoming file under the name baz. -x Begin server operation. May be used in either local or remote mode. Before proceeding, a few words about remote and local opera- tion are necessary. _K_e_r_m_i_t is "local" if it is running on a PC or workstation that you are using directly, or if it is running on a multiuser system and transferring files over an external communication line - not your job's controlling terminal or console. _K_e_r_m_i_t is remote if it is running on a multiuser system and transferring files over its own con- trolling terminal's communication line, connected to your PC or workstation. If you are running _K_e_r_m_i_t on a PC, it is in local mode by default, with the "back port" designated for file transfer and terminal connection. If you are running _K_e_r_m_i_t on a multiuser (timesharing) system, it is in remote mode unless you explicitly point it at an external line for file transfer or terminal connection. The following command sets _K_e_r_m_i_t's "mode": -l _d_e_v Line - Specify a terminal line to use for file transfer and terminal connection, as in 9 kermit -l /dev/ttyi5 When an external line is being used, you might also need some additional options for successful communication with the remote system: -b _n Baud - Specify the baud rate for the line given in the -l option, as in 9 kermit -l /dev/ttyi5 -b 9600 This option should always be included with the -l option, since the speed of an external line is not necessarily what you expect. -p _x Parity - e, o, m, s, n (even, odd, mark, space, or none). If parity is other than none, then the 8th-bit prefixing mechanism will be used for transferring 8-bit binary data, provided the opposite _K_e_r_m_i_t agrees. The default parity is none. -t Specifies half duplex, line turnaround with XON as the handshake character. The following commands may be used only with a _K_e_r_m_i_t which is local - either by default or else because the -l option has been specified. Printed 7/26/87 LOCAL 3 KERMIT(1C) UNIX Programmer's Manual KERMIT(1C) -g _r_f_n Actively request a remote server to send the named file or files; _r_f_n is a file specification in the remote host's own syntax. If _f_n happens to contain any special shell characters, like '*', these must be quoted, as in 9 kermit -g x\*.\? -f Send a 'finish' command to a remote server. -c Establish a terminal connection over the specified or default communication line, before any protocol transaction takes place. Get back to the local sys- tem by typing the escape character (normally Control-Backslash) followed by the letter 'c'. -n Like -c, but after a protocol transaction takes place; -c and -n may both be used in the same com- mand. The use of -n and -c is illustrated below. On a timesharing system, the -l and -b options will also have to be included with the -r, -k, or -s options if the other _K_e_r_m_i_t is on a remote system. If _k_e_r_m_i_t is in local mode, the screen (stdout) is con- tinously updated to show the progress of the file transer. A dot is printed for every four data packets, other packets are shown by type (e.g. 'S' for Send-Init), 'T' is printed when there's a timeout, and '%' for each retransmission. In addition, you may type (to stdin) certain "interrupt" com- mands during file transfer: Control-F: Interrupt the current File, and go on to the next (if any). Control-B: Interrupt the entire Batch of files, ter- minate the transaction. Control-R: Resend the current packet Control-A: Display a status report for the current transaction. These interrupt characters differ from the ones used in other _K_e_r_m_i_t implementations to avoid conflict with Unix shell interrupt characters. With System III and System V implementations of Unix, interrupt commands must be pre- ceeded by the escape character (e.g. control-\). Several other command-line options are provided: 9 Printed 7/26/87 LOCAL 4 KERMIT(1C) UNIX Programmer's Manual KERMIT(1C) -i Specifies that files should be sent or received exactly "as is" with no conversions. This option is necessary for transmitting binary files. It may also be used to slightly boost efficiency in Unix- to-Unix transfers of text files by eliminating CRLF/newline conversion. -w Write-Protect - Avoid filename collisions for incom- ing files. -q Quiet - Suppress screen update during file transfer, for instance to allow a file transfer to proceed in the background. -d Debug - Record debugging information in the file debug.log in the current directory. Use this option if you believe the program is misbehaving, and show the resulting log to your local _K_e_r_m_i_t maintainer. -h Help - Display a brief synopsis of the command line options. The command line may contain no more than one protocol action option. INTERACTIVE OPERATION _K_e_r_m_i_t's interactive command prompt is "C-Kermit>". In response to this prompt, you may type any valid command. _K_e_r_m_i_t executes the command and then prompts you for another command. The process continues until you instruct the pro- gram to terminate. Commands begin with a keyword, normally an English verb, such as "send". You may omit trailing characters from any keyword, so long as you specify sufficient characters to distinguish it from any other keyword valid in that field. Certain commonly-used keywords (such as "send", "receive", "connect") have special non-unique abbreviations ("s" for "send", "r" for "receive", "c" for "connect"). Certain characters have special functions in interactive commands: ? Question mark, typed at any point in a command, will produce a message explaining what is possible or expected at that point. Depending on the context, the message may be a brief phrase, a menu of key- words, or a list of files. ESC (The Escape or Altmode key) - Request completion of the current keyword or filename, or insertion of a Printed 7/26/87 LOCAL 5 KERMIT(1C) UNIX Programmer's Manual KERMIT(1C) default value. The result will be a beep if the requested operation fails. DEL (The Delete or Rubout key) - Delete the previous character from the command. You may also use BS (Backspace, Control-H) for this function. ^W (Control-W) - Erase the rightmost word from the com- mand line. ^U (Control-U) - Erase the entire command. ^R (Control-R) - Redisplay the current command. SP (Space) - Delimits fields (keywords, filenames, numbers) within a command. HT (Horizontal Tab) may also be used for this purpose. CR (Carriage Return) - Enters the command for execu- tion. LF (Linefeed) or FF (formfeed) may also be used for this purpose. \ (Backslash) - Enter any of the above characters into the command, literally. To enter a backslash, type two backslashes in a row (\\). A single backslash immediately preceding a carriage return allows you to continue the command on the next line. You may type the editing characters (DEL, ^W, etc) repeat- edly, to delete all the way back to the prompt. No action will be performed until the command is entered by typing carriage return, linefeed, or formfeed. If you make any mistakes, you will receive an informative error message and a new prompt - make liberal use of '?' and ESC to feel your way through the commands. One important command is "help" - you should use it the first time you run _K_e_r_m_i_t. Interactive _K_e_r_m_i_t accepts commands from files as well as from the keyboard. When you enter interactive mode, _K_e_r_m_i_t looks for the file .kermrc in your home or current directory (first it looks in the home directory, then in the current one) and executes any commands it finds there. These com- mands must be in interactive format, not Unix command-line format. A "take" command is also provided for use at any time during an interactive session. Command files may be nested to any reasonable depth. Here is a brief list of _K_e_r_m_i_t interactive commands: 9 ! Execute a Unix shell command. 9 bye Terminate and log out a remote _K_e_r_m_i_t server. Printed 7/26/87 LOCAL 6 KERMIT(1C) UNIX Programmer's Manual KERMIT(1C) close Close a log file. 9 connect Establish a terminal connection to a remote sys- tem. 9 cwd Change Working Directory. 9 dial Dial a telephone number. 9 directory Display a directory listing. 9 echo Display arguments literally. 9 exit Exit from the program, closing any open logs. 9 finish Instruct a remote _K_e_r_m_i_t server to exit, but not log out. 9 get Get files from a remote _K_e_r_m_i_t server. 9 help Display a help message for a given command. 9 log Open a log file - debugging, packet, session, transaction. 9 quit Same as 'exit'. 9 receive Passively wait for files to arrive. 9 remote Issue file management commands to a remote _K_e_r_- _m_i_t server. 9 script Execute a login script with a remote system. 9 send Send files. 9 server Begin server operation. 9 set Set various parameters. 9 show Display values of 'set' parameters. 9 space Display current disk space usage. 9 statistics Display statistics about most recent transac- tion. 9 take Execute commands from a file. 9 The 'set' parameters are: 9 block-check Level of packet error detection. 9 delay How long to wait before sending first packet. 9 duplex Specify which side echoes during 'con- nect'. 9 escape-character Character to prefix "escape commands" during 'connect'. 9 file Set various file parameters. 9 flow-control Communication line full-duplex flow Printed 7/26/87 LOCAL 7 KERMIT(1C) UNIX Programmer's Manual KERMIT(1C) control. 9 handshake Communication line half-duplex tur- naround character. 9 line Communication line device name. 9 modem-dialer Type of modem-dialer on communication line. 9 parity Communication line character parity. 9 prompt Change the _K_e_r_m_i_t program's prompt. 9 receive Set various parameters for inbound packets. 9 send Set various parameters for outbound packets. 9 speed Communication line speed. 9 The 'remote' commands are: 9 cwd Change remote working directory. 9 delete Delete remote files. 9 directory Display a listing of remote file names. 9 help Request help from a remote server. 9 host Issue a command to the remote host in its own command language. 9 space Display current disk space usage on remote sys- tem. 9 type Display a remote file on your screen. 9 who Display who's logged in, or get information about a user. 9FILES $HOME/.kermrc _K_e_r_m_i_t initialization commands ./.kermrc more _K_e_r_m_i_t initialization commands SEE ALSO cu(1C), uucp(1C) Frank da Cruz and Bill Catchings, _K_e_r_m_i_t _U_s_e_r'_s _G_u_i_d_e, Columbia University, 6th Edition DIAGNOSTICS The diagnostics produced by _K_e_r_m_i_t itself are intended to be self-explanatory. BUGS See recent issues of the Info-Kermit digest (on ARPANET or Usenet), or the file ckuker.bwr, for a list of bugs. Printed 7/26/87 LOCAL 8