apply 010_makefile-destdir-support
[ckermit.git] / ckuker.nr
1 .\" @(#) kermit.1 8.0.211 2004/04/10 Columbia University
2 .TH KERMIT 1 "APRIL 2004" "User Manuals"
3 .na
4 .SH NAME
5 kermit \-
6 .B C-Kermit 8.0:
7 transport- and platform-independent
8 interactive and scriptable communications software.
9 .IP
10
11 This document is intended to give the beginner sufficient information to make
12 basic (if not advanced) use of C-Kermit 8.0.  Although it might be rather long
13 for a Unix manual page, it's still far shorter than the C-Kermit manual, which
14 should be consulted for advanced topics such as customization, character-sets,
15 scripting, etc. We also attempt to provide a clear structural overview of
16 C-Kermit's many capabilities, functional areas, states, and modes and their
17 interrelation, that should be helpful to beginners and veterans alike, as well
18 as to those upgrading to version 8.0 from earlier releases.
19 .PP
20 This document is also available as a Web page at:
21 .IP
22 http://www.columbia.edu/kermit/ckututor.html
23 .SH DESCRIPTION
24 C-Kermit is an all-purpose communications software package from the Kermit
25 Project at Columbia University that:
26 .PP
27 .nf
28 \(bu    Is portable to many platforms, Unix and non-Unix alike.
29 .br
30 \(bu    Can make both serial and network connections.
31 .br
32 \(bu    Can conduct interactive terminal sessions over its connection.
33 .br
34 \(bu    Can transfer text or binary files over the same connection.
35 .br
36 \(bu    Can convert character sets in the terminal session.
37 .br
38 \(bu    Can convert character sets during text-file file transfer.
39 .br
40 \(bu    Is customizable in every aspect of its operation.
41 .fi
42 .PP
43 C-Kermit is a modem program, a Telnet client, an Rlogin client, an FTP
44 client, an HTTP client, and on selected platforms, also an X.25 client. It
45 can make its own secure Internet connections using IETF-approved security
46 methods including Kerberos IV, Kerberos V, SSL/TLS, and SRP and it can also
47 make SSH connections through your external SSH client application. It can
48 be the far-end file-transfer or client/server partner of your desktop
49 Kermit client. It can also accept incoming dialed and network connections.
50 It can even be installed as an Internet service on its own standard TCP
51 socket, 1649 [RFC2839, RFC2840].
52 .PP
53 And perhaps most important, everything you can do "by hand" (interactively)
54 with C-Kermit, can be "scripted" (automated) using its built-in
55 cross-platform transport-independent script programming language, which
56 happens to be identical to its interactive command language.
57 .PP
58 This manual page offers an overview of C-Kermit 8.0 for Unix ("Unix" is an
59 operating system family that includes AIX, DG/UX, FreeBSD, HP-UX, IRIX,
60 Linux, Mac OS X, NetBSD, OpenBSD, Open Server, Open Unix, QNX, Solaris,
61 SunOS, System V R3, System V R4, Tru64 Unix, Unixware, Xenix, and many
62 others). For thorough coverage, please consult the published C-Kermit
63 manual and supplements (see DOCUMENTATION below). For further information
64 about C-Kermit, Kermit software for other platforms, and Kermit manuals,
65 visit the Kermit Project website:
66 .PP
67   http://www.columbia.edu/kermit/
68 .PP
69 This is a longer-than-average manual page, and yet it barely scratches the
70 surface. Don't be daunted. C-Kermit is a large and complex package,
71 evolving over decades of practice and experience, but that doesn't mean
72 it's hard to learn or use. Its most commonly used functions are explained
73 here with pointers to additional information elsewhere.
74 .SH SYNOPSIS
75 .B kermit [
76 .I filename
77 .B ] [
78 .I options
79 .B ] [ {=,--,+}
80 .I text
81 .B ] ]
82 .PP
83 or:
84 .PP
85 .B kermit 
86 .I URL
87 .PP
88 If the first command-line argument is the name of a file, interactive-mode
89 commands are executed from the file. The '=' (or "--") argument tells
90 Kermit not to parse the remainder of the command line, but to make the
91 words following '=' available as \e%1, \e%2, ... \e%9. The "+" argument is
92 like "=" but for use in "kerbang scripts" (explained below). A second
93 command-line format allows the one and only argument to be a Telnet, FTP,
94 HTTP, or IKSD URL.
95 .PP
96 Order of execution:
97 .TP
98  1.
99 The command file (if any).
100 .TP
101 .nf
102  2.
103 The initialization file, if any, unless suppressed with -Y.
104 .fi
105 .TP
106  3.
107 The customization file (if it is executed by the initialization file).
108 .TP
109  4.
110 The command-line URL (if any, and if so, execution stops here).
111 .TP
112  5.
113 Command-line options (if any).
114 .TP
115  6.
116 Interactive commands.
117 .PP
118 Some command-line options can cause actions (such as -s to send a file);
119 others just set parameters. If any action options are included on the
120 command line, Kermit exits when finished unless also given the -S ("stay")
121 option. If no action options are given, no initialization or command files
122 contained an EXIT or QUIT command, and no fatal errors occurred, Kermit
123 issues its prompt and waits for you to type commands.
124 .IP
125 Bear in mind that C-Kermit can be built with selected features
126 disabled, and also that certain features are not available on all
127 platforms. For example, C-Kermit can't be built with TCP/IP
128 support on a platform that does not have TCP/IP header files and
129 libraries (and even if Kermit does include TCP/IP support, it
130 can't be used to make TCP/IP connections on a computer that does
131 not have a TCP/IP stack installed). If your version of lacks
132 C-Kermit a feature mentioned here, use its SHOW FEATURES command to
133 see what might have been excluded.
134 .PP
135 C-Kermit has three kinds of commands: regular single-letter command-line
136 options, extended-format command-line options, and interactive commands.
137 .PP
138 Like most Unix commands, C-Kermit can be be given options on the command
139 line. But C-Kermit also can be used interactively by giving it commands
140 composed of words, which are more intuitive than cryptic command-line
141 options, and more flexible too. In other words, you don't have to use
142 C-Kermit's command-line options, but they are available if you want to. (By
143 the same token, you don't have to use its interactive commands either --
144 you can use either or both in any combination.)
145 .PP
146 C-Kermit is generally installed in the PATH as "kermit", and therefore is
147 invoked by typing the word "kermit" (lowercase) at the shell prompt, and
148 then pressing the Return or Enter key. If you wish to include command-line
149 options, put them after the word "kermit" but before pressing Return or
150 Enter, separated by spaces, for example:
151 .PP
152   $ kermit -s ckermit.tar.gz
153 .PP
154 ('$' is the shell prompt; "kermit -s ckermit.tar.gz" is what you type,
155 followed by Return or Enter.)
156 .SH OPTIONS
157 Here is a list of C-Kermit's single-letter command-line options, which
158 start with a single dash (-), in ASCII ("alphabetical") order. Alphabetic
159 case is significant (-A is not the same as -a).  Action options are 
160 tagged "ACTION".
161 .TP
162 -0
163 (digit zero)  100% transparent Connect state for
164 "in-the-middle" operation: 8 bits, no parity, no
165 escape character, everything passes through.
166 .TP
167 -8
168 (digit eight)  Connection is 8-bit clean (this is the
169 default in C-Kermit 8.0). Equivalent to the EIGHTBIT
170 command, which in turn is a shortcut for SET TERMINAL
171 BYTESIZE 8, SET COMMAND BYTESIZE 8, SET PARITY NONE.
172 .TP
173 -9 arg
174 (digit nine)  Make a connection to an FTP server.
175 Equivalent to the FTP OPEN command.
176 Argument: IP-address-or-hostname[:optional-TCP-port].
177 NOTE: C-Kermit also has a separate FTP command-line
178 personality, with regular FTP-like command-line
179 syntax. More about this below.
180 .TP
181 -A
182 Kermit is to be started as an Internet service (IKSD)
183 (only from inetd.conf).
184 .TP
185 -B
186 Kermit is running in Batch or Background (no
187 controlling terminal). To be used in case Kermit
188 doesn't automatically sense its background status.
189 Equivalent to the SET BACKGROUND ON command.
190 .TP
191 -C arg
192 Interactive-mode Commands to be executed.
193 Argument: Commands separated by commas, list in
194 doublequotes.
195 .TP
196 -D arg
197 Delay before starting to send in Remote mode.
198 Equivalent to the SET DELAY command.
199 Argument: Number of seconds.
200 .TP
201 -E
202 Exit automatically when connection closes. Equivalent
203 to SET EXIT ON-DISCONNECT ON.
204 .TP
205 -F arg
206 Use an open TCP connection.
207 Argument: Numeric file descriptor of open TCP
208 connection.
209 Also see: -j, -J.
210 .TP
211 -G arg
212 (ACTION) Get file(s) from server, send contents to standard
213 output, which normally would be piped to another
214 process.
215 Argument: Remote file specification, in quotes if it
216 contains metacharacters.
217 Also see: -g, -k.
218 .TP
219 -H
220 Suppress program startup Herald and greeting.
221 .TP
222 -I
223 Tell Kermit it has a reliable connection, to force streaming to be used where
224 it normally would not be.  Equivalent to the SET RELIABLE ON command.
225 .TP
226 -J arg
227 (ACTION) "Be like Telnet." Like -j but implies -E.  Argument: IP
228 hostname/address optionally followed by service.  NOTE: C-Kermit also has a
229 separate Telnet command-line personality, with regular Telnet-like
230 command-line syntax. More about this below.
231 .TP
232 -L
233 Recursive directory descent for files in -s option.
234 .TP
235 -M arg
236 My user name (for use with Telnet, Rlogin, FTP, etc).
237 Equivalent to the SET LOGIN USER command.
238 Argument: Username string.
239 .TP
240 -O
241 (ACTION) (Uppercase letter O) Be a server for One command only.
242 Also see: -x.
243 .TP
244 -P
245 Don't convert file (Path) names of transferred files.
246 Equivalent to SET FILE NAMES LITERAL.
247 .TP
248 -Q
249 Quick Kermit protocol settings. Equivalent to the FAST
250 command. This is the default in C-Kermit 7.0 and later.
251 .TP
252 -R
253 Remote-only (this just makes IF REMOTE true).
254 .TP
255 -S
256 Stay (enter command parser after action options).
257 .TP
258 -T
259 Force Text mode for file transfer; implies -V.
260 Equivalent to SET TRANSFER MODE MANUAL, SET FILE TYPE TEXT.
261 .TP
262 -V
263 Disable automatic per-file text/binary switching.
264 Equivalent to SET TRANSFER MODE MANUAL.
265 .TP
266 -Y
267 Skip (don't execute) the initialization file.
268 .TP
269 -a arg
270 As-name for file(s) in -s, -r, or -g.
271 Argument: As-name string (alternative filename). When
272 receiving files, this can be a directory name.
273 .TP
274 -b arg
275 Speed for serial device. Equivalent to SET SPEED.
276 Argument: Numeric Bits per second for serial
277 connections.
278 .TP
279 -c
280 (ACTION) Enter Connect state before transferring files.
281 .TP
282 -d
283 Create a debug.log file with detailed debugging
284 information (a second -d adds timestamps). Equivalent
285 to LOG DEBUG but takes effect sooner.
286 .TP
287 -e arg
288 Maximum length for incoming Kermit file-transfer
289 packets. Equivalent to SET RECEIVE PACKET-LENGTH.
290 Argument: Length in bytes.
291 .TP
292 -f
293 (ACTION) Send a FINISH command to a Kermit server.
294 .TP
295 -g arg
296 Get file(s) from a Kermit server.
297 Argument: File specification on other computer, in
298 quotes if it contains metacharacters. Equivalent to
299 GET. Also see: -a, -G, -r.
300 .TP
301 -h
302 (ACTION) Print Help text for single-letter command-line options
303 (pipe thru 'more' to prevent scrolling).
304 .TP
305 -i
306 Force binary (Image) mode for file transfer; implies
307 -V. Equivalent to SET TRANSFER MODE MANUAL, SET FILE
308 TYPE BINARY.
309 .TP
310 -j arg
311 Make a TCP/IP connection.
312 Argument: IP host name/address and optional service
313 name or number. Equivalent to the TELNET command.
314 Also see: -J, -F.
315 .TP
316 -k
317 (ACTION) Receive file(s) to standard output, which normally 
318 would be piped to another process.
319 Also see: -r, -G.
320 .TP
321 -l arg
322 (Lowercase letter L) Make a connection on the given
323 serial communications device. Equivalent to the SET
324 LINE (SET PORT) command.
325 Argument: Serial device name, e.g. /dev/ttyS0.
326 .TP
327 -m arg
328 Modem type for use with the -l device. Equivalent to
329 the SET MODEM TYPE command.
330 Argument: Modem name as in SET MODEM TYPE command,
331 e.g. "usrobotics".
332 .TP
333 -n
334 (ACTION) Enter Connect state after transferring files (historical).
335 .TP
336 -p arg
337 Parity. Equivalent to the SET PARITY command.
338 Argument: One of the following: e(ven), o(dd), m(ark),
339 n(one), s(pace).
340 .TP
341 -q
342 Quiet (suppress most messages). Equivalent to SET QUIET ON.
343 .TP
344 -r
345 (ACTION) Receive file(s). Equivalent to the RECEIVE command.
346 Argument: (none, but see -a)
347 .TP
348 -s arg
349 Send file(s).
350 Argument: One or more local file specifications.
351 Equivalent to the SEND command.
352 Also see: -a.
353 .TP
354 -t
355 (Historical) Xon (Ctrl-Q) Turnaround character for
356 half-duplex connections (used on serial linemode
357 connections to old mainframes). Equivalent to SET
358 DUPLEX HALF, SET HANDSHAKE XON.
359 .TP
360 -v arg
361 Window size for Kermit protocol (ignored when
362 streaming). Equivalanet to SET WINDOW-SIZE.
363 Argument: Number, 1 to 32.
364 .TP
365 -w
366 Incoming files Write over existing files. Equivalent
367 to SET FILE COLLISION OVERWRITE.
368 .TP
369 -x
370 (ACTION) Enter server mode. Equivalent to the SERVER command.
371 Also see: -O.
372 .TP
373 -y arg
374 Alternative initialization file.
375 Argument: Filename.
376 .TP
377 -z
378 Force foreground behavior. To be used in case Kermit
379 doesn't automatically sense its foreground status.
380 Equivalent to the SET BACKGROUND OFF command.
381 .PP
382 Extended command-line options (necessary because single-letter ones are
383 about used up) start with two dashes (--), with words rather than single
384 letters as option names. If an extended option takes an argument, it is
385 separated from the option word by a colon (:). Extended options include:
386
387 .TP
388  --bannerfile:filename
389 File to display upon startup or IKSD login.
390 .TP
391  --cdfile:filename
392 File to be sent for display to the client when
393 server changes directory (filename is relative to
394 the changed-to directory).
395 .TP
396  --cdmessage:{on,off}
397 Enable/disable the server CD message feature.
398 .TP
399  --help
400 Prints usage message for extended options.
401 .TP
402  --helpfile:filename
403 Designates a file containing custom text to
404 replace the top-level HELP command.
405 .TP
406  --nointerrupts
407 Disables keyboard interrupts.
408 .TP
409  --noperms
410 Disables the Kermit protocol file Permissions
411 attribute, to prevent transmission of file
412 permissions (protection) from sender to receiver.
413 .TP
414  --version
415 (ACTION) C-Kermit prints its version number.
416 .PP
417 Plus several other IKSD-Only options described at:
418 .PP
419   http://www.columbia.edu/kermit/iksd.html
420 .PP
421 See the file-transfer section for examples of command-line invocation.
422 .SH COMMAND LANGUAGE
423 C-Kermit's interactive command language is the subject of a 622-page book
424 and another several hundred pages of updates, far too much for a manual
425 page. But it's not hard to get started. At the shell prompt, just type
426 "kermit" to get C-Kermit's interactive command prompt:
427 .PP
428 .nf
429   $ kermit
430   (/current/directory) C-Kermit>
431 .fi
432 .PP
433 Begin by typing "help" (and then press the Return or Enter key) for a
434 top-level overview, read it, and go from there. Your second command should
435 probably be "intro" (introduction). Note the prompt shows your current
436 directory (unless you tell Kermit to prompt you with something else).
437 .PP
438 Interactive commands are composed mainly of regular English words, usually
439 in the form of imperative sentences, such as:
440 .PP
441   send oofa.txt
442 .PP
443 which tells Kermit to send (transfer) the file whose name is oofa.txt, or:
444 .PP
445   set transfer mode automatic
446 .PP
447 which sets Kermit's "transfer mode" to "automatic" (whatever that means).
448 .PP
449 While typing commands, you can abbreviate, ask for help (by pressing the
450 "?" key anywhere in a command), complete keywords or filenames (with the
451 Tab or Esc key), and edit your typing with Backspace or Delete, Ctrl-W,
452 Ctrl-U, etc. You can also recall previous commands, save your command
453 history, and who knows what else. Give the INTRO command for details.
454 .PP
455 C-Kermit has hundreds of commands, and they can be issued in infinite
456 variety and combinations, including commands for:
457 .nf
458 .PP
459 \(bu    Making connections (SET LINE, DIAL, TELNET, SSH, FTP, ...)
460 .br
461 \(bu    Breaking connections (HANGUP, CLOSE)
462 .br
463 \(bu    Transferring files (SEND, GET, RECEIVE, MOVE, RESEND, ...)
464 .br
465 \(bu    Establishing preferences (SET)
466 .br
467 \(bu    Displaying preferences (SHOW)
468 .br
469 \(bu    Managing local files (CD, DELETE, MKDIR, DIR, RENAME, TYPE, ...)
470 .br
471 \(bu    Managing remote files (RCD, RDEL, RMKDIR, RDIR, ...)
472 .br
473 \(bu    Using local files (FOPEN, FCLOSE, FREAD, FWRITE)
474 .br
475 \(bu    Programming (TAKE, DEFINE, IF, FOR, WHILE, SWITCH, DECLARE, ...)
476 .br
477 \(bu    Interacting with the user (ECHO, ASK, ...)
478 .br
479 \(bu    Interacting with a remote computer (INPUT, OUTPUT, ...)
480 .br
481 \(bu    Interacting with local programs (RUN, EXEC, PTY, ...)
482 .br
483 \(bu    Logging things (LOG SESSION, LOG PACKETS, LOG DEBUG, ...)
484 .PP
485 .fi
486 And of course QUIT or EXIT to get out and HELP to get help, and for
487 programmers: loops, decision making, variables, arrays, associative arrays,
488 integer and floating point arithmetic, macros, built-in and user-defined
489 functions, string manipulation, pattern matching, block structure, scoping,
490 recursion, and all the rest. To get a list of all C-Kermit's commands, type
491 a question mark (?) at the prompt. To get a description of any command,
492 type HELP followed by the name of the command, for example:
493 .PP
494   help send
495 .PP
496 The command interruption character is Ctrl-C (hold down the Ctrl key and
497 press the C key).
498 .PP
499 The command language "escape character", used to introduce variable names,
500 function invocations, and so on, is backslash (\). If you need to include a
501 literal backslash in a command, type two of them, e.g.:
502 .PP
503   get c:\ek95\ek95custom.ini
504 .SS Command Files, Macros, and Scripts
505 A file containing Kermit commands is called a Kermit command file or Kermit
506 script. It can be executed with Kermit's TAKE command:
507 .PP
508   (/current/dir) C-Kermit> take commandfile
509 .PP
510 (where "commandfile" is the name of the command file). Please don't pipe a
511 command file into Kermit's standard input (which might or might not work);
512 if you have Kermit commands in a file, tell Kermit to TAKE the file.
513 .PP
514 In Unix only, a Kermit command file can also be executed directly by
515 including a "kerbang" line as the first line of the file:
516 .PP
517   #!/usr/local/bin/kermit +
518 .PP
519 That is, a top line that starts with "#!", followed immediately by the full
520 path of the Kermit executable, and then, if the Kermit script is to be
521 given arguments on the command line, a space and a plus sign. The script
522 file must also have execute permission:
523 .PP
524   chmod +x commandfile
525 .PP
526 Except for the " +" part, this is exactly the same as you would do for a
527 shell script, a Perl script, etc. Here's a simple but useless example
528 script that regurgitates its arguments (up to three of them):
529 .PP
530   #!/usr/local/bin/kermit +
531   if defined \e%1 echo "Argument 1: \e%1"
532   if defined \e%2 echo "Argument 2: \e%2"
533   if defined \e%3 echo "Argument 3: \e%3"
534   if defined \e%4 echo "etc..."
535   exit
536 .PP
537 If this file is stored in your current directory as "commandfile", then:
538 .PP
539   ./commandfile one two three four five
540 .PP
541 prints:
542 .PP
543   Argument 1: one
544   Argument 2: two
545   Argument 3: three
546   etc...
547 .PP
548 This illustrates the basic structure of a standalone Kermit script: the
549 "kerbang line", then some commands. It should end with "exit" unless you
550 want the Kermit prompt to appear when it is finished. \e%1 is the first
551 argument, \e%2 the second, and so on.
552 .PP
553 You can also create your own commands by defining named macros composed of
554 other Kermit commands (or macros). For example:
555 .PP
556 .nf
557   define mydelete {
558       local trash
559       assign trash \ev(home)trashcan/
560       if not defined \e%1 end 1 "Delete what?"
561       if wild \e%1 {
562           end 1 "Deleting multiple files is too scary"
563       }
564       if not exist \e%1 end 1 "I can't find \e%1"
565       if not directory \em(trash) {
566           mkdir \em(trash)
567           if fail end 1 "No trash can"
568       }
569       rename /list \e%1 \em(trash)
570   }
571   define myundelete {
572       local trash
573       assign trash \ev(home)trashcan/
574       if not defined \e%1 end 1 "Undelete what?"
575       if wild \e%1 {
576           end 1 "Undeleting multiple files is too hard"
577       }
578       if not directory \em(trash) end 1 "No trash can"
579       if not exist \em(trash)\e%1 {
580           end 1 "I can't find \e%1 in trash can"
581       }
582       rename /list \em(trash)\e%1 .
583   }
584 .PP
585 .fi
586 These sample macros are not exactly production quality (they don't handle
587 filenames that include path segments, they don't handle multiple files,
588 etc), but you get the idea: you can pass arguments to macros, and they can
589 check them and make other kinds of decisions. If you put the above lines
590 into your initialization or customization file (explained below), you'll
591 have MYDELETE and MYUNDELETE commands available every time you start
592 Kermit, at least as long as you don't suppress execution of the
593 initialization file. (Exercise for the reader: Make these macros generally
594 useful: remove limitations, add trashcan display, browsing, emptying, etc.)
595 .PP
596 Kerbang scripts execute without the initialization file. This to keep them
597 portable and also to make them start faster. If you want to write Kerbang
598 scripts that depend on the initialization file, include the command
599 .PP
600   take \ev(home).kermrc
601 .PP
602 at the desired spot in the script. By the way, \ev(xxx) is a built-in
603 variable (xxx is the variable name, "home" in this case). To see what
604 built-in variables are available, type "show variables" at the C-Kermit
605 prompt. To see what else you can show, type "show ?". \em(xxx) is a user
606 defined variable (strictly speaking, it is a macro used as a variable).
607 .SS Command List
608 C-Kermit has more than 200 top-level commands, and some of these, such as
609 SET, branch off into hundreds of subcommands of their own, so it's not
610 practical to describe them all here. Instead, here's a concise list of the
611 most commonly used top-level commands, grouped by category. To learn about
612 each command, type "help" followed by the command name, e.g. "help set".
613 Terms such as Command state and Connect state are explained in subsequent
614 sections.
615 .PP
616 Optional fields are shown in [ brackets ].  "filename" means the
617 name of a single file. filespec means a file specification that is allowed
618 to contain wildcard characters like '*' to match groups of files. options
619 are (optional) switches like /PAGE, /NOPAGE, /QUIET, etc, listed in the
620 HELP text for each command. Example:
621 .PP
622 .nf
623   send /recursive /larger:10000 /after:-1week /except:*.txt *
624 .fi
625 .PP
626 which can be read as "send all the files in this directory and all the ones
627 underneath it that are larger than 10000 bytes, no more than one week old,
628 and whose names don't end with ".txt".
629 .SS
630 Basic Commands
631 .RS
632 .TP
633 HELP
634 Requests top-level help.
635 .TP
636 HELP command
637 Requests help about the given command.
638 .TP
639 INTRODUCTION
640 Requests a brief introduction to C-Kermit.
641 .TP
642 LICENSE
643 Displays the C-Kermit software copyright and license.
644 .TP
645 VERSION
646 Displays C-Kermit's version number.
647 .TP
648 EXIT [ number ]
649 Exits from Kermit with the given
650 status code. Synonyms: QUIT, E, Q.
651 .TP
652 TAKE filename [ parameters... ]
653 Executes commands from the given
654 .TP
655 LOG item [ filename ]
656 Keeps a log of the given item in the given file.
657 .TP
658 [ DO ] macro [ parameters... ]
659 Executes commands from the given macro.
660 .TP
661 SET parameter value
662 Sets the given parameter to the given value.
663 .TP
664 SHOW category
665 Shows settings in a given category.
666 .TP
667 STATUS
668 Tells whether previous command succeeded or failed.
669 .TP
670 DATE [ date-and/or-time ]
671 Shows current date-time or interprets given date-time.
672 .TP
673 RUN [ extern-command [ parameters... ]                 
674 Runs the given external command. Synonym: !.
675 .TP
676 EXEC [ extern-command [ params... ]
677 Kermit overlays itself with the given command.
678 .TP
679 SUSPEND
680 Stops Kermit and puts it in the background. Synonym: Z.
681 .RE
682 .SS
683 Local File Management
684 .RS
685 .TP
686 TYPE [ options ] filename
687 Displays the contents of the given file.
688 .TP
689 MORE [ options ] filename     
690 Equivalent to TYPE /PAGE (pause after each screenful).
691 .TP
692 CAT [ options ] filename      
693 Equivalent to TYPE /NOPAGE.
694 .TP
695 HEAD [ options ] filename     
696 Displays the first few lines of a given file.
697 .TP
698 TAIL [ options ] filename     
699 Displays the last few lines of a given file.
700 .TP
701 GREP [ options ] pattern filespec
702 Displays lines from files that match
703 the pattern. Synonym: FIND.
704 .TP
705 DIRECTORY [ options ] [filespec ]
706 Lists files (built-in, many options).
707 .TP
708 LS [ options ] [ filespec ]   
709 Lists files (runs external "ls" command).
710 .TP
711 DELETE [ options ] [ filespec ]
712 Deletes files. Synonym: RM.
713 .TP
714 PURGE [ options ] [ filespec ]
715 Removes backup (*.~n~) files.
716 .TP
717 COPY [ options ] [ filespecs... ]
718 Copies files. Synonym: CP.
719 .TP
720 RENAME [ options ] [ filespecs... ]
721 Renames files. Synonym: MV.
722 .TP
723 CHMOD [ options ] [ filespecs... ]
724 Changes permissions of files.
725 .TP
726 TRANSLATE filename charsets [ filename ]
727 Converts file's character set. Synonym: XLATE.
728 .TP
729 CD
730 Changes your working directory to your home directory.
731 .TP
732 CD directory
733 Changes your working directory to the one given.
734 .TP
735 CDUP
736 Changes your working directory one level up.
737 .TP
738 PWD
739 Displays your working directory.
740 .TP
741 BACK
742 Returns to your previous working directory.
743 .TP
744 MKDIR [ directory ]
745 Creates a directory.
746 .TP
747 RMDIR [ directory ]
748 Removes a directory.
749 .RE
750 .SS
751 Making Connections
752 .RS
753 .TP
754 SET LINE [ options ] devicename                      
755 Opens the named serial port. Synonym: SET PORT.
756 .TP
757 OPEN LINE [ options ] devicename
758 Same as SET LINE. Synonym: OPEN PORT.
759 .TP
760 SET MODEM TYPE [ name ]
761 Tells Kermit what kind of modem is on the port.
762 .TP
763 DIAL [ number ]
764 Tells Kermit to dial the given phone number with the modem.
765 .TP
766 REDIAL
767 Redials the most recently dialed phone number.
768 .TP
769 ANSWER
770 Waits for and answers an incoming call on the modem.
771 .TP
772 AUTHENTICATE [ parameters... ]
773 Performs secure authentication on a TCP/IP connection.
774 .TP
775 SET NETWORK TYPE { TCP/IP, X.25, ... }
776 Selects network type for subsequent SET HOST commands.
777 .TP
778 SET HOST [ options ] host [ port ]                          
779 Opens a network connection to the given host and port.
780 .TP
781 SET HOST * port
782 Waits for an incoming TCP/IP connection on the given port.
783 .TP
784 TELNET [ options ] host
785 Opens a Telnet connection to the host and enters Connect state.
786 .TP
787 RLOGIN [ options ] host
788 Opens an Rlogin connection to the host and enters Connect state.
789 .TP
790 IKSD [ options ] host
791 Opens a connection to an Internet Kermit Service.
792 .TP
793 SSH [ options ] host
794 Opens an SSH connection to the host and enters Connect state.
795 .TP
796 FTP OPEN host [ options ]
797 Opens an FTP connection to the host.
798 .TP
799 HTTP [ options ] OPEN host
800 Opens an HTTP connection to the host.
801 .TP
802 PTY external-command
803 Runs the command on a pseudoterminal as if it were a connection.
804 .TP
805 PIPE external-command
806 Runs the command through a pipe as if it were a connection.
807 .RE
808 .SS
809 Using Connections
810 .RS
811 .TP
812 CONNECT [ options ]
813 Enters Connect (terminal) state.  Synonym: C.
814 .TP
815 REDIRECT command
816 Redirects the given external command over the connection.
817 .TP
818 TELOPT command
819 Sends a Telnet protocol command (Telnet connections only).
820 .TP
821 Ctrl-\eC
822 "Escapes back" from Connect state to Command state.
823 .TP
824 Ctrl-\eB
825 (In Connect state) Sends a BREAK signal (serial or Telnet).
826 .TP
827 Ctrl-\e!
828 (In Connect state) Enters inferior shell; "exit" to return.
829 .TP
830 Ctrl-\e?
831 (In Connect state) Shows a menu of other escape-level options.
832 .TP
833 Ctrl-\eCtrl-\e
834 (In Connect state) Type two
835 Ctrl-Backslashes to send one of them.
836 .TP
837 SET ESCAPE [ character ]
838 Changes Kermit's Connect-state escape character.
839 .RE
840 .SS
841 Closing Connections
842 .RS
843 .TP
844 HANGUP
845 Hangs up the currently open
846 serial-port or network connection.
847 .TP
848 CLOSE
849 Closes the currently open
850 serial-port or network connection.
851 .TP
852 SET LINE (with no devicename)
853 Closes the currently open
854 serial-port or network connection.
855 .TP
856 SET HOST (with no hostname)
857 Closes the currently open serial-port or network connection.
858 .TP
859 FTP CLOSE
860 Closes the currently open FTP connection.
861 .TP
862 HTTP CLOSE
863 Closes the currently open HTTP connection.
864 .TP
865 EXIT 
866 Also closes all connections. Synonym: QUIT.
867 .TP
868 SET EXIT WARNING OFF
869 Suppresses warning about open connections on exit or close.
870 .RE
871 .SS
872 File Transfer
873 .RS
874 .TP
875 SEND [ options ] filename [ as-name ]
876 Sends the given file. Synonym: S.
877 .TP
878 SEND [ options ] filespec
879 Sends all files that match.
880 .TP
881 RESEND [ options ] filespec
882 Resumes an interupted SEND from the point of failure.
883 .TP
884 RECEIVE [ options ] [ as-name ]                    
885 Waits passively for files to arrive. Synonym: R.
886 .TP
887 LOG TRANSACTIONS [ filename ]
888 Keeps a record of file transfers.
889 .TP
890 FAST
891 Use fast file-transfer settings (default).
892 .TP
893 CAUTIOUS
894 Use cautious and less fast file-transfer settings.
895 .TP
896 ROBUST
897 Use ultra-conservative and slow file-transfer settings.
898 .TP
899 STATISTICS [ options ] 
900 Gives statistics about the most recent file transfer.
901 .TP
902 WHERE
903 After transfer: "Where did my files go?".
904 .TP
905 TRANSMIT [ options ] [ofilename ]
906 Sends file without protocol. Synonym: XMIT.
907 .TP
908 LOG SESSION [ filename ]
909 Captures remote text or files without protocol.
910 .TP
911 SET PROTOCOL [ name... ]
912 Tells Kermit to use an external file-transfer protocol.
913 .TP
914 FTP { PUT, MPUT, GET, MGET, ... }
915 FTP client commands.
916 .TP
917 HTTP { PUT, GET, HEAD, POST, ... }
918 HTTP client commands.
919 .RE
920 .SS
921 Kermit Server
922 .RS
923 .TP
924 ENABLE, DISABLE
925 Controls which server features can be used by clients.
926 .TP
927 SET SERVER
928 Sets parameters prior to entering Server state.
929 .TP
930 SERVER
931 Enters Server state.
932 .RE
933 .SS
934 Client of Kermit or FTP Server
935 .RS
936 .TP
937 [ REMOTE ] LOGIN [ user password ]         
938 Logs in to a Kermit server or IKSD that requires it.
939 .TP
940 [ REMOTE ] LOGOUT
941 Logs out from a Kermit server or IKSD.
942 .TP
943 SEND [ options ] filename [ as-name ]                   
944 Sends the given file to the server. Synonyms: S, PUT.
945 .TP
946 SEND [ options ] filespec
947 Sends all files that match.
948 .TP
949 RESEND [ options ] filespec
950 Resumes an interupted SEND from the point of failure.
951 .TP
952 GET [ options ] remote-filespec
953 Asks the server to send the given files. Synonym: G.
954 .TP
955 REGET [ options ] remote-filespec
956 Resumes an interrupted GET from the point of failure.
957 .TP
958 REMOTE CD [ directory ]
959 Asks server to change its working
960 directory. Synonym: RCD.
961 .TP
962 REMOTE PWD [ directory ]
963 Asks server to display its working directory. Synonym: RPWD.
964 .TP
965 REMOTE DIRECTORY [ filespec... ]
966 Asks server to send a directory listing. Synonym: RDIR.
967 .TP
968 REMOTE DELETE [ filespec... ]
969 Asks server to delete files. Synonym: RDEL.
970 .TP
971 REMOTE [ command... ]
972 (Many other commands: "remote ?" for a list).
973 .TP
974 MAIL [ options ] filespec
975 Sends file(s) to be delivered as e-mail (Kermit only).
976 .TP
977 FINISH
978 Asks the server to exit server state (Kermit only).
979 .TP
980 BYE
981 Asks the server to log out and close the connection.
982 .RE
983 .SS
984 Script Programming
985 .PP
986 .RS
987 DEFINE, DECLARE, UNDEFINE, UNDECLARE, ASSIGN, EVALUATE, SEXPRESSION,
988 ARRAY, SORT, INPUT, OUTPUT, IF, FOR, WHILE, SWITCH, GOTO, ECHO, ASK,
989 GETC, GETOK, ASSERT, WAIT, SLEEP, FOPEN, FREAD, FWRITE, FCLOSE, STOP,
990 END, RETURN, LEARN, SHIFT, TRACE, VOID, INCREMENT, DECREMENT, ... For
991 these and many more you'll need to consult the manual and supplements,
992 and/or visit the Kermit Script Library, which also includes a brief
993 tutorial. Hint: HELP LEARN to find out how to get Kermit to write
994 simple scripts for you.
995 .RE
996 .PP
997 Many of Kermit's commands have synonyms, variants, relatives, and so on.
998 For example, MSEND is a version of SEND that accepts a list of file
999 specifications to be sent, rather than just one file specification, and
1000 MPUT is a synonym of MSEND. MOVE means to SEND and then DELETE the source
1001 file if successful. MMOVE is like MOVE, but accepts a list of filespecs,
1002 and so on. These are described in the full documentation.
1003 .PP
1004 Use question mark to feel your way through an unfamiliar command, as in
1005 this example:
1006 .PP
1007 .nf
1008   C-Kermit> remote ? One of the following:
1009    assign     directory  kermit     print      rmdir
1010    cd         exit       login      pwd        set
1011    copy       help       logout     query      space
1012    delete     host       mkdir      rename     type
1013   C-Kermit> remote set ? One of the following:
1014    attributes   file         retry        transfer
1015    block-check  receive      server       window
1016   C-Kermit> remote set file ? One of the following:
1017    character-set  incomplete     record-length
1018    collision      names          type
1019   C-Kermit> remote set file names ? One of the following:
1020    converted  literal
1021   C-Kermit> remote set file names literal
1022   C-Kermit>
1023 .PP
1024 .fi
1025 This is called menu on demand: you get a menu when you want one, but menus
1026 are not forced on you even when know what you're doing. Note that you can
1027 also abbreviate most keywords, and you can complete them with the Tab or
1028 Esc key. Also note that ? works for filenames too, and that you can use it
1029 in the middle of a keyword or filename, not just at the beginning. For
1030 example, "send x?" lists all the files in the current directory whose names
1031 start with 'x'.
1032 .SH INITIALIZATION FILE
1033 In its default configuration, C-Kermit executes commands from a file 
1034 called .kermrc in your home directory when it starts, unless it is given the
1035 -Y or -y command-line option. Custom configurations might substitute a shared
1036 system-wide initialization file. The SHOW FILE command tells what
1037 initialization file, if any, was used. The standard initialization file
1038 "chains" to an individual customization file, .mykermc, in the home directory,
1039 in which each user can establish her/his own preferences, define macros, and
1040 so on.
1041 .PP
1042 Since execution of the initialization file (at least the standard one)
1043 makes C-Kermit take longer to start, it might be better not to have an
1044 initialization file, especially now that Kermit's default startup
1045 configuration is well attuned to modern computing and networking -- in
1046 other words, you no longer have do anything special to make Kermit
1047 transfers go fast. So instead of having an initialization file that is
1048 executed every time Kermit starts, you might consider making one or more
1049 kerbang scripts (with names other that .kermrc) that do NOT include an
1050 "exit" command, and invoke those when you need the settings, macro
1051 definitions, and/or scripted actions they contain, and invoke C-Kermit
1052 directly when you don't.
1053 .PP
1054 To put it another way... We still distribute the standard initialization
1055 file since it's featured in the manual and backwards compatibility is
1056 important to us. But there's no harm in not using it if you don't need the
1057 stuff that's in it (services directory, dialing directory, network
1058 directory, and associated macro definitions). On the other hand, if there
1059 are settings or macros you want in effect EVERY time you use Kermit, the
1060 initialization file (or the customization file it chains to) is the place
1061 to put them, because that's the only place Kermit looks for them
1062 automatically each time you start it.
1063 .SH MODES OF OPERATION
1064 Kermit is said to be in Local mode if it has made a connection to another
1065 computer, e.g. by dialing it or establishing a Telnet connection to it. The
1066 other computer is remote, so if you start another copy of Kermit on the
1067 remote computer, it is said to be in Remote mode (as long as it has not
1068 made any connections of its own). The local Kermit communicates over the
1069 communications device or network connection, acting as a conduit between
1070 the the remote computer and your keyboard and screen. The remote Kermit is
1071 the file-transfer partner to the local Kermit and communicates only through
1072 its standard input and output.
1073 .PP
1074 At any moment, a Kermit program can be in any of the following states. It's
1075 important to know what they are and how to change from one to the other.
1076 .TP
1077 Command state
1078 In this state, Kermit reads commands from:
1079 .sp
1080 \(bu    Your keyboard; or:
1081 .br
1082 \(bu    A file, or:
1083 .br
1084 \(bu    A macro definition.
1085 .sp
1086 You can exit from Command state back to Unix with the EXIT or QUIT
1087 command (same thing). You can enter Connect state with any of various
1088 commands (CONNECT, DIAL, TELNET, etc). You can enter file transfer
1089 state with commands like SEND, RECEIVE, and GET. You can enter Server
1090 state with the SERVER command. The TAKE command tells Kermit to read
1091 and execute commands from a file. The (perhaps implied) DO command
1092 tells Kermit to read and execute commands from a macro definition.
1093 While in Command state, you can interrupt any command, macro, or
1094 command file by typing Ctrl-C (hold down the Ctrl key and press the C
1095 key); this normally brings you back to the prompt.
1096 .TP
1097 Shell state
1098 You can invoke an inferior shell or external command from the Kermit
1099 command prompt by using the PUSH, RUN (!), EDIT, or BROWSE command.
1100 While the inferior shell or command is active, Kermit is suspended and
1101 does nothing. Return to Kermit Command state by exiting from the
1102 inferior shell or application.
1103 .TP
1104 Connect state
1105 In this state, which can be entered only when in Local mode (i.e. when
1106 Kermit has made a connection to another computer), Kermit is acting as
1107 a terminal to the remote computer. Your keystrokes are sent to the
1108 remote computer and characters that arrive over the communication
1109 connection are displayed on your screen. This state is entered when
1110 you give a CONNECT, DIAL, TELNET, RLOGIN, or IKSD command. You can
1111 return to command state by logging out of the remote computer, or by
1112 typing:
1113 .sp
1114   Ctrl-\ec
1115 .sp
1116 That is: Hold down the Ctrl key and press the backslash key, then let
1117 go of the Ctrl key and press the C key. This is called escaping back.
1118 Certain other escape-level commands are also provided; type Ctrl-\e?
1119 for a list. For example, you can enter Shell state with:
1120 .sp
1121   Ctrl-\e!
1122 .sp
1123 To send a Ctrl-\e to the host while in Connect state, type two of them
1124 in a row. See HELP CONNECT and HELP SET ESCAPE for more info.
1125 .TP
1126 Local file-transfer state
1127 In this state, Kermit is sending packets back and forth with the other
1128 computer in order to transfer a file or accomplish some other
1129 file-related task. And at the same time, it is displaying its progress
1130 on your screen and watching your keyboard for interruptions. In this
1131 state, the following single-keystroke commands are accepted:
1132 .sp
1133 .RS
1134 .TP
1135 X
1136 Interrupt the current file and go on to the next (if any).
1137 .TP
1138 Z
1139 Interrupt the current file and skip all the rest.
1140 .TP
1141 E
1142 Like Z but uses a "stronger" protocol (use if X or Z don't work).
1143 .TP
1144 Ctrl-C
1145 Interrupt file-transfer mode (use if Z or E don't work).
1146 .sp
1147 .RE
1148 Kermit returns to its previous state (Command or Connect) when the
1149 transfer is complete or when interrupted successfully by X, Z, E, or
1150 Ctrl-C (hold down the Ctrl key and press the C key).
1151 .TP
1152 Remote file-transfer state
1153 In this state, Kermit is exchanging file-transfer packets with its
1154 local partner over its standard i/o. It leaves this state
1155 automatically when the transfer is complete. In case you find your
1156 local Kermit in Connect state and the remote one in File-transfer
1157 state (in which it seems to ignore your keystrokes), you can usually
1158 return it to command state by typing three Ctrl-C's in a row. If that
1159 doesn't work, return your local Kermit to Command state (Ctrl-\e C) and
1160 type "e-packet" and then press the Return or Enter key; this forces a
1161 fatal Kermit protocol error.
1162 .TP
1163 Remote Server state
1164 This is like Remote File-transfer state, except it never returns
1165 automatically to Command state. Rather, it awaits further instructions
1166 from the client program; that is, from your Local Kermit program. You
1167 can return the Remote Server to its previous state by issuing a
1168 "finish" command to the client, or if you are in Connect state, by
1169 typing three Ctrl-C's in a row. You can tell the server job to log out
1170 and break the connection by issuing a "bye" command to the client.
1171 .TP
1172 Local Server state
1173 Like Remote-Server state, but in local mode, and therefore with its
1174 file-transfer display showing, and listening for single-key commands,
1175 as in Local File-transfer state. Usually this state is entered
1176 automatically when a remote Kermit program gives a GET command.
1177 .sp
1178 C-Kermit, Kermit 95, and MS-DOS Kermit all can switch automatically from
1179 Connect state to Local File-transfer state when you initiate a file
1180 transfer from the remote computer by starting Kermit and telling it to send
1181 or get a file, in which case, Connect state is automatically resumed after
1182 the file transfer is finished.
1183 .sp
1184 Note that C-Kermit is not a terminal emulator. It is a communications
1185 application that you run in a terminal window (e.g. console or Xterm). The
1186 specific emulation, such as VT100, VT220, Linux Console, or Xterm, is
1187 provided by the terminal window in which you are running C-Kermit. Kermit
1188 95 and MS-DOS Kermit, on the other hand, are true terminal emulators. Why
1189 is C-Kermit not a terminal emulator? CLICK HERE to read about it.
1190 .SH MAKING CONNECTIONS
1191 Here is how to make different kinds of connections using interactive Kermit
1192 commands (as noted above, you can also make connections with command-line
1193 options). Note that you don't have to make connections with Kermit. It can
1194 also be used on the far end of a connection as the remote file transfer and
1195 management partner of your local communications software.
1196 .TP
1197 Making a Telnet Connection
1198 At the C-Kermit command prompt, simply type:
1199 .sp
1200 .nf
1201   telnet foo.bar.com
1202 .fi
1203 .sp
1204 (substituting desired hostname or address).  
1205 You can also include a port number:
1206 .sp
1207 .nf
1208   telnet xyzcorp.com 3000 ; 
1209 .fi
1210 .sp
1211 If the connection is successful, Kermit automically enters Connect
1212 state. When you logout from the remote host, Kermit automatically
1213 returns to its prompt. More info: HELP TELNET, HELP SET TELNET, HELP
1214 SET TELOPT. Also see the IKSD section below.
1215 .TP
1216 Making an Rlogin connection
1217 This is just like Telnet, except you have to be root to do it because
1218 Rlogin uses a privileged TCP port:
1219 .sp
1220 .nf
1221   rlogin foo.bar.com
1222 .fi
1223 .sp
1224 More info: HELP RLOGIN.
1225 .TP
1226 Making an SSH Connection
1227 Unlike Telnet and Rlogin, SSH connections are not built-in, but
1228 handled by running your external SSH client through a pseudoterminal.
1229 Using C-Kermit to control the SSH client gives you all of Kermit's
1230 features (file transfer, character-set conversion, scripting, etc)
1231 over SSH.
1232 .sp
1233   ssh foo.bar.com
1234 .sp
1235 More info: HELP SSH, HELP SET SSH.
1236 .TP
1237 Dialing with a Modem
1238 If it's an external modem, make sure it is connected to a usable
1239 serial port on your computer with a regular (straight-through) modem
1240 cable, and to the telephone jack with a telephone cable, and that it's
1241 turned on. Then use these commands:
1242 .sp
1243 .nf
1244   set modem type usrobotics  ; Or other supported type
1245   set line /dev/ttyS0        ; Specify device name
1246   set speed 57600            ; Or other desired speed
1247   set flow rts/cts           ; Most modern modems support this
1248   set dial method tone       ; (or pulse)
1249   dial 7654321               ; Dial the desired number
1250 .fi
1251 .sp
1252 Type "set modem type ?" for a list of supported modem types. If you
1253 omit the SET MODEM TYPE command, the default type is
1254 "generic-high-speed", which should work for most modern AT-command-set
1255 modems. If the line is busy, Kermit redials automatically. If the call
1256 does not succeed, use "set dial display on" and try it again to watch
1257 what happens. If the call succeeds, Kermit enters Connect state
1258 automatically and returns to its prompt automatically when you log out
1259 from the remote computer or the connection is otherwise lost.
1260 .sp
1261 You can also dial from a modem that is accessible by Telnet, e.g. to a
1262 reverse terminal server. In this case the command sequence is:
1263 .sp
1264 .nf
1265   set host ts.xxx.com 2000   ; Terminal-server and port
1266   set modem type usrobotics  ; Or other supported type
1267   set dial method tone       ; (or pulse)
1268   dial 7654321               ; Dial the desired number
1269 .fi
1270 .sp
1271 If the terminal server supports the Telnet Com Port Option, RFC 2217,
1272 you can also give serial-port related commands such as SET SPEED, SET
1273 PARITY, and so on, and Kermit relays them to the terminal server using
1274 the protocol specified in the RFC.
1275 .sp
1276 More info: HELP SET MODEM, HELP SET LINE, HELP SET SPEED, HELP SET
1277 FLOW, HELP DIAL, HELP SET DIAL, HELP SET MODEM, HELP SET 
1278 CARRIER-WATCH, SHOW COMMUNICATIONS, SHOW MODEM, SHOW DIAL.
1279 .TP
1280 Direct Serial Port
1281 Connect the two computers, A and B, with a null modem cable (or two
1282 modem cables interconnected with a null-modem adapter or modem
1283 eliminator). From Computer A:
1284 .sp
1285 .nf
1286   set modem type none   ; There is no modem
1287   set line /dev/ttyS0   ; Specify device name
1288   set carrier-watch off ; If DTR CD are not cross-connected
1289   set speed 57600       ; Or other desired speed
1290   set flow rts/cts      ; If RTS and CTS are cross-connected
1291   set parity even       ; (or "mark" or "space", if necessary)
1292   set stop-bits 2       ; (rarely necessary)
1293   set flow xon/xoff     ; If you can't use RTS/CTS
1294   connect               ; Enter Connect (terminal) state
1295 .fi
1296 .sp
1297 This assumes Computer B is set up to let you log in. If it isn't, you 
1298 can run a copy of Kermit on Computer B and follow approximately the
1299 same directions. More info: As above plus HELP CONNECT.
1300 .PP
1301 With modems or direct serial connections, you might also have to "set
1302 parity even" (or "mark" or "space") if it's a 7-bit connection.
1303 .PP
1304 Of the connection types listed above, only one can be open at a time.
1305 However, any one of these can be open concurrently with an FTP or HTTP
1306 session. Each connection type can be customized to any desired degree,
1307 scripted, logged, you name it. See the manual.
1308 .PP
1309 NOTE: On selected platforms, C-Kermit also can make X.25 connections. See
1310 the manual for details.
1311 .SH TRANSFERRING FILES WITH KERMIT
1312 There is a widespread and persistent belief that Kermit is a slow protocol.
1313 This is because, until recently, it used conservative tuning by default to
1314 make sure file transfers succeeded, rather than failing because they
1315 overloaded the connection. Some extra commands (or command-line options,
1316 like -Q) were needed to make it go fast, but nobody bothered to find out
1317 about them. Also, it takes two to tango: most non-Kermit-Project Kermit
1318 protocol implementations really ARE slow. The best file-transfer partners
1319 for C-Kermit are: another copy of C-Kermit (7.0 or later) and Kermit 95.
1320 These combinations work well and they work fast by default. MS-DOS Kermit
1321 is good too, but you have to tell it to go fast (by giving it the FAST
1322 command).
1323 .PP
1324 Furthermore, all three of these Kermit programs support "autodownload" and
1325 "autoupload", meaning that when they are in Connect state and a Kermit
1326 packet comes in from the remote, they automatically switch into file
1327 transfer mode.
1328 .PP
1329 And plus, C-Kermit and K95 also switch automatically between text and
1330 binary mode for each file, so there is no need to "set file type binary" or
1331 "set file type text", or to worry about files being corrupted because they
1332 were transferred in the wrong mode.
1333 .PP
1334 What all of these words add up to is that now, when you use up-to-date
1335 Kermit software from the Kermit Project, file transfer is not only fast,
1336 it's ridiculously easy. You barely have to give any commands at all.
1337 .TP
1338 Downloading Files
1339 Let's say you have Kermit 95, C-Kermit, or MS-DOS Kermit on your
1340 desktop computer, with a connection to a Unix computer that has
1341 C-Kermit installed as "kermit". To download a file (send it from Unix
1342 to your desktop computer), just type the following command at your
1343 Unix shell prompt:
1344 .sp
1345   kermit -s oofa.txt
1346 .sp
1347 (where oofa.txt is the filename). If you want to send more than one
1348 file, you can put as many filenames as you want on the command line,
1349 and they can be any combination of text and binary:
1350 .sp
1351   kermit -s oofa.txt oofa.zip oofa.html oofa.tar.gz
1352 .sp
1353 and/or you can use wildcards to send groups of files:
1354 .sp
1355   kermit -s oofa.*
1356 .sp
1357 If you want to send a file under an assumed name, use:
1358 .sp
1359   kermit -s friday.txt -a today.txt
1360 .sp
1361 This sends the file friday.txt but tells the receiving Kermit that its
1362 name is today.txt. In all cases, as noted, when the file transfer is
1363 finished, your desktop Kermit returns automatically to Connect state.
1364 No worries about escaping back, re-connecting, text/binary mode
1365 switching. Almost too easy, right?
1366 .TP
1367 Uploading Files
1368 To upload files (send them from your desktop computer to the remote
1369 Unix computer) do the same thing, but use the -g (GET) option instead
1370 of -s:
1371 .sp
1372   kermit -g oofa.txt
1373 .sp
1374 This causes your local Kermit to enter server mode; then the remote
1375 Kermit program requests the named file and the local Kermit sends it
1376 and returns automatically to Connect state when done.
1377 .sp
1378 If you want to upload multiple files, you have have use shell quoting
1379 rules, since these aren't local files:
1380 .sp
1381 .nf
1382   kermit -g "oofa.txt oofa.zip oofa.html oofa.tar.gz"
1383   kermit -g "oofa.*"
1384 .fi
1385 .sp
1386 If you want to upload a file but store it under a different name, use:
1387 .sp
1388   kermit -g friday.txt -a today.txt
1389 .TP
1390 Kermit Transfers the Old-Fashioned Way
1391 If your desktop communications software does not support autoupload or
1392 autodownload, or it does not include Kermit server mode, the procedure
1393 requires more steps.
1394 .sp
1395 To download a file, type:
1396 .sp
1397   kermit -s filename
1398 .sp
1399 on the host as before, but if nothing happens automatically in
1400 response to this command, you have to switch your desktop
1401 communications software into Kermit Receive state. This might be done
1402 by escaping back using keyboard characters or hot keys (Alt-x is
1403 typical) and/or with a command (like RECEIVE) or a menu. When the file
1404 transfer is complete, you have to go back to Connect state, Terminal
1405 emulation, or whatever terminology applies to your desktop
1406 communications software.
1407 .sp
1408 To upload a file, type:
1409 .sp
1410   kermit -r
1411 .sp
1412 on the host (rather than "kermit -g"). This tells C-Kermit to wait
1413 passively for a file to start arriving. Then regain the attention of
1414 your desktop software (Alt-x or whatever) and instruct it to send the
1415 desired file(s) with Kermit protocol. When the transfer is finished,
1416 return to the Connect or Terminal screen.
1417 .TP
1418 If File Transfer Fails
1419 Although every aspect of Kermit's operation can be finely tuned, there
1420 are also three short and simple "omnibus tuning" commands you can use
1421 for troubleshooting:
1422 .RS
1423 .TP
1424 FAST
1425 Use fast file-transfer settings. This has been the default since
1426 C-Kermit 7.0 now that most modern computers and connections
1427 support it. If transfers fail with fast settings, try . . .
1428 .TP
1429 CAUTIOUS
1430 Use cautious but not paranoid settings. File transfers, if they
1431 work, will go at medium speed. If not, try . . .
1432 .TP
1433 ROBUST
1434 Use the most robust, resilient, conservative, safe, and reliable
1435 settings. File transfers will almost certainly work, but they
1436 will be quite slow (of course this is a classic tradeoff; ROBUST
1437 was C-Kermit's default tuning in versions 6.0 and earlier, which
1438 made everybody think Kermit protocol was slow). If ROBUST doesn't
1439 do the trick, try again with SET PARITY SPACE first in case it's
1440 not an 8-bit connection.
1441 .RE
1442 .sp
1443 Obviously the success and performance of a file transfer also depends
1444 on C-Kermit's file transfer partner. Up-to-date, real Kermit Project
1445 partners are recommended because they contain the best Kermit protocol
1446 implementations and because we can support them in case of trouble.
1447 .sp
1448 If you still have trouble, consult Chapter 10 of Using C-Kermit, or
1449 send email to kermit-support@columbia.edu.
1450 .TP
1451 Advanced Kermit File-Transfer Features
1452 Obviously there is a lot more to Kermit file transfer, including all
1453 sorts of interactive commands, preferences, options, logging,
1454 debugging, troubleshooting, and anything else you can imagine but
1455 that's what the manual and updates are for. Here are a few topics you
1456 can explore if you're interested by Typing HELP for the listed
1457 commands:
1458 .RS
1459 .TP
1460 Logging transfers:
1461 LOG TRANSACTIONS (HELP LOG)
1462 .TP
1463 Automatic per-file text/binary mode switching:
1464 SET TRANSFER MODE { AUTOMATIC, MANUAL } (HELP SET TRANSFER).
1465 .TP
1466 Cross-platform recursive directory tree transfer:
1467 SEND /RECURSIVE, GET /RECURSIVE (HELP SEND, HELP GET).
1468 .TP
1469 File collision options:
1470 SET FILE COLLISION { OVERWRITE, BACKUP, DISCARD, ... } (HELP SET FILE).
1471 .TP
1472 Update: Transfer only files that changed since last time:
1473 SET FILE COLLISION UPDATE (HELP SET FILE).
1474 .TP
1475 Filename selection patterns:
1476 (HELP WILDCARD).
1477 .TP
1478 Flexible file selection:
1479 SEND (or GET) /BEFORE /AFTER /LARGER /SMALLER /TYPE /EXCEPT, ...
1480 .TP
1481 Character-set conversion:
1482 SET { FILE, TRANSFER } CHARACTER-SET, ASSOCIATE, ...
1483 .TP
1484 File/Pathname control:
1485 SET { SEND, RECEIVE } PATHNAMES, SET FILE NAMES.
1486 .TP
1487 Atomic file movement:
1488 SEND (or GET) /DELETE /RENAME /MOVE-TO
1489 .TP
1490 Transferring to/from standard i/o of other commands:
1491 SEND (or GET) /COMMAND
1492 .TP
1493 Recovery of interrupted transfer from point of failure:
1494 RESEND, REGET (HELP RESEND, HELP REGET).
1495 .RE
1496 .TP
1497 Non-Kermit File Transfer
1498 You can also use C-Kermit to transfer files with FTP or HTTP Internet
1499 protocols; see below.
1500 .sp
1501 On a regular serial or Telnet connection where the other computer
1502 doesn't support Kermit protocol at all, you have several options. For
1503 example, if your desktop communications software supports Zmodem, use
1504 "rz" and "sz" on the host rather than Kermit. But if Kermit is your
1505 desktop software, and you are using it to make calls or network
1506 connections to other computers that don't support Kermit protocol (or
1507 that don't have a good implementation of it), then if your computer
1508 also has external X, Y, or Zmodem programs that are redirectable,
1509 Kermit can use them as external protocols. HELP SET PROTOCOL for
1510 details.
1511 .sp
1512 You can also capture "raw" data streams from the other computer with
1513 LOG SESSION (HELP LOG and HELP SET SESSION-LOG for details), and you
1514 can upload files without any protocol at all with TRANSMIT (HELP
1515 TRANSMIT, HELP SET TRANSMIT).
1516 .SH KERMIT'S BUILT-IN FTP AND HTTP CLIENTS
1517 Kermit's FTP client is like the regular Unix FTP client that you're used
1518 to, but with some differences:
1519 .TP
1520 \(bu
1521 It has lots more commands and features.
1522 .TP
1523 \(bu
1524 Each FTP command must be prefixed with "ftp", for example "ftp open",
1525 "ftp get", "ftp bye", etc (this is not strictly true, but until you're
1526 more familiar with it, it's best to follow this rule).
1527 .TP
1528 \(bu
1529 Commands like "cd", "directory", etc, execute locally, not on the
1530 server. Use "ftp cd", "ftp dir", etc, to have them act on the server.
1531 .TP
1532 \(bu
1533 You can have an FTP session and a regular Kermit serial or Telnet
1534 session open at the same time.
1535 .TP
1536 \(bu
1537 FTP sessions can be fully automated.
1538 .PP
1539 Pending publication of the next edition of the manual, the Kermit FTP
1540 client is thoroughly documented at the Kermit Project website:
1541 .sp
1542   http://www.columbia.edu/kermit/ftpclient.html
1543 .sp
1544 You also can use HELP FTP and HELP SET FTP to get descriptions of Kermit's
1545 FTP-related commands.
1546 .PP
1547 The HTTP client is similar to the FTP one, except you prefix each command
1548 with HTTP instead of FTP: HTTP OPEN, HTTP GET, HTTP PUT, HTTP CLOSE, etc.
1549 Type HELP HTTP for details, or visit the to view the manual supplements.
1550 HTTP connections can be open at the same time as regular serial or Telnet
1551 connections and FTP connections. So Kermit can manage up to three types
1552 connections simultaneously.
1553 .SH INTERNET KERMIT SERVICE
1554 C-Kermit can be configured and run as an Internet service (called IKSD),
1555 similar to an FTP server (FTPD) except you can (but need not) interact with
1556 it directly, plus it does a lot more than an FTP server can do. The TCP
1557 port for IKSD is 1649. It uses Telnet protocol. C-Kermit can be an Internet
1558 Kermit Server, or it can be a client of an IKSD. You can make connections
1559 from C-Kermit to an IKSD with any of the following commands:
1560 .sp
1561 .nf
1562   telnet foo.bar.edu 1649
1563   telnet foo.bar.edu kermit   ; if "kermit" is listed in /etc/services
1564   iksd foo.bar.edu
1565 .fi
1566 .sp
1567 The IKSD command is equivalent to a TELNET command specifying port 1649.
1568 For more information about making and using connections to an IKSD, see:
1569 .sp
1570   http://www.columbia.edu/kermit/cuiksd.html
1571 .sp
1572 You can run an Internet Kermit Service on your own computer too (if you are
1573 the system administrator). For instructions, see:
1574 .sp
1575   http://www.columbia.edu/kermit/iksd.html
1576 .SH SECURITY
1577 All of C-Kermit's built-in TCP/IP networking methods (Telnet, Rlogin, IKSD,
1578 FTP, and HTTP) can be secured by one or more of the following IETF-approved
1579 methods:
1580 .PP
1581 \(bu    MIT Kerberos IV
1582 .br
1583 \(bu    MIT Kerberos V
1584 .br
1585 \(bu    SSL/TLS
1586 .br
1587 \(bu    Stanford SRP
1588 .PP
1589 For complete instructions see:
1590 .PP
1591   http://www.columbia.edu/kermit/security.html
1592 .PP
1593 And as noted previously, you can also make SSH connections with C-Kermit if
1594 you already have an SSH client installed.
1595 .SH ALTERNATIVE COMMAND-LINE PERSONALITIES
1596 When invoked as "kermit" or any other name besides "ftp" or "telnet",
1597 C-Kermit has the command-line options described above in the OPTIONS
1598 section. However, if you invoke C-Kermit as "telnet" or "ftp", it changes
1599 its command-line personality to match. This can be done (among other ways)
1600 with symbolic links (symlinks). For example, if you want C-Kermit to be
1601 your regular Telnet client, or the Telnet helper of your Web browser, you
1602 can create a link like the following in a directory that lies in your PATH
1603 ahead of the regular telnet program:
1604 .sp
1605   ln -s /usr/local/bin/kermit telnet
1606 .sp
1607 Now when you give a "telnet" command, you are invoking Kermit instead, but
1608 with its Telnet command-line personality so, for example:
1609 .sp
1610   telnet xyzcorp.com
1611 .sp
1612 Makes a Telnet connection to xyzcorp.com, and Kermit exits automatically
1613 when the connection is closed (just like the regular Telnet client). Type
1614 "telnet -h" to get a list of Kermit's Telnet-personality command-line
1615 options, which are intended to be as compatible as possible with the
1616 regular Telnet client.
1617 .PP
1618 Similarly for FTP:
1619 .sp
1620   ln -s /usr/local/bin/kermit ftp
1621 .sp
1622 And now type "ftp -h" to see its command-line options, and command lines
1623 just like you would give your regular FTP client:
1624 .sp
1625   ftp xyzcorp.com
1626 .sp
1627 but with additional options allowing an entire session to be specified on
1628 the command line. Finally, if Kermit's
1629 first command-line option is a Telnet, FTP, IKSD, or HTTP URL, Kermit
1630 automatically makes the appropriate kind of connection and, if indicated by
1631 the URL, takes the desired action:
1632 .TP
1633 kermit telnet:xyzcorp.com
1634 Opens a Telnet session
1635 .TP
1636 kermit telnet://olga@xyzcorp.com
1637 Ditto for user olga
1638 .TP
1639 kermit ftp://olga@xyzcorp.com/public/oofa.zip
1640 Downloads a file
1641 .TP
1642 kermit kermit://kermit.columbia.edu/kermit/f/READ.ME
1643 Ditto for IKSD
1644 .TP
1645 kermit iksd://kermit.columbia.edu/kermit/f/READ.ME
1646 (This works too)
1647 .TP
1648 kermit http://www.columbia.edu/kermit/index.html
1649 Grabs a web page
1650 .fi
1651 .SH LICENSE
1652 C-Kermit has an unusual license, but a fair and sensible one since the
1653 Kermit Project must support itself out of revenue: it's not a BSD license,
1654 not GPL, not Artistic, not commercial, not shareware, not freeware. It can
1655 be summed up like this: if you want C-Kermit for your own use, you can
1656 download and use it without cost or license (but we'd appreciate it if you
1657 would purchase the manual). But if you want to sell C-Kermit or bundle it
1658 with a product or otherwise distribute it in a commercial setting EXCEPT
1659 WITH AN OPEN-SOURCE OPERATING SYSTEM DISTRIBUTION such as Linux, FreeBSD,
1660 NetBSD, or OpenBSD, you must license it. To see the complete license, give
1661 the LICENSE command at the prompt, or see the COPYING.TXT file distributed
1662 with C-Kermit 7.0 or later, or download it from
1663 .sp
1664   ftp://kermit.columbia.edu/kermit/c-kermit/COPYING.TXT
1665 .sp
1666 Send licensing inquiries to kermit@columbia.edu.
1667 .SH BUGS
1668 See the following files for listings of known bugs, limitations,
1669 workarounds, hints and tips:
1670 .TP
1671 ckcbwr.txt
1672 General C-Kermit bugs, hints, tips.
1673 .TP
1674 ckubwr.txt
1675 Unix-specific C-Kermit bugs, hints, tips.
1676 .PP
1677 Report bugs and problems by email to:
1678 .sp
1679    kermit-support@columbia.edu.
1680 .sp
1681 Before requesting technical support, please read the hints here:
1682 .sp
1683   http://www.columbia.edu/kermit/support.html
1684 .sp
1685 and also read the C-Kermit Frequently Asked Questions:
1686 .sp
1687   http://www.columbia.edu/kermit/ckfaq.html
1688 .SH OTHER TOPICS
1689 There's way more to C-Kermit than we've touched on here -- troubleshooting,
1690 customization, character sets, dialing directories, sending pages, script
1691 writing, and on and on, all of which are covered in the manual and updates
1692 and supplements. For the most up-to-date information on documentation (or
1693 updated documentation itself) visit the Kermit Project website:
1694 .sp
1695   http://www.columbia.edu/kermit/
1696 .PP
1697 There you will also find Kermit software packages for other platforms:
1698 different Unix varieties, Windows, DOS, VMS, IBM mainframes, and many
1699 others: 20+ years' worth.
1700 .SH DOCUMENTATION AND UPDATES
1701 The manual for C-Kermit is:
1702 .TP
1703 .I
1704 Using C-Kermit
1705 Frank da Cruz and Christine M. Gianone,
1706 Second Edition, Digital Press / Butterworth-Heinemann, Woburn, MA, 1997, 622
1707 pages, ISBN 1-55558-164-1. This is a printed book. It covers C-Kermit 6.0.
1708 .TP
1709 The C-Kermit 7.0 Supplement
1710 http://www.columbia.edu/kermit/ckermit2.html
1711 .TP
1712 The C-Kermit 8.0 Supplement
1713 http://www.columbia.edu/kermit/ckermit3.html
1714 .PP
1715 Visit C-Kermit home page:
1716 .sp
1717   http://www.columbia.edu/kermit/ckermit.html
1718 .sp
1719 to learn about new versions, Beta tests, and other news; to
1720 read case studies and tutorials; to download source code, install packages,
1721 and prebuilt binaries for many platforms. Also visit:
1722 .TP
1723 http://www.columbia.edu/kermit/scriptlib.html
1724 The Kermit script library and tutorial
1725 .TP
1726 http://www.columbia.edu/kermit/newfaq.html
1727 The Kermit FAQ (Frequently Asked Questions about Kermit)
1728 .TP
1729 http://www.columbia.edu/kermit/ckfaq.html
1730 The C-Kermit FAQ (Frequently Asked Questions about C-Kermit)
1731 .TP
1732 http://www.columbia.edu/kermit/telnet.html
1733 C-Kermit Telnet client documentation
1734 .TP
1735 http://www.columbia.edu/kermit/security.html
1736 C-Kermit security documentation (Kerberos, SSL/TLS, etc)
1737 .TP
1738 http://www.columbia.edu/kermit/cuiksd.html
1739 Internet Kermit Service user documentation
1740 .TP
1741 http://www.columbia.edu/kermit/iksd.html
1742 Internet Kermit Service administrator documentation
1743 .TP
1744 http://www.columbia.edu/kermit/studies.html
1745 Case studies.
1746 .TP
1747 http://www.columbia.edu/kermit/support.html
1748 Technical support.
1749 .TP
1750 http://www.columbia.edu/kermit/k95tutorial.html
1751 Kermit 95 tutorial.
1752 .TP
1753 comp.protocols.kermit.misc
1754 The Kermit newsgroup (unmoderated).
1755 .SH FILES
1756 .TP
1757 COPYING.TXT
1758 C-Kermit license.
1759 .TP
1760 ~/.kermrc
1761 Initialization file.
1762 .TP
1763 ~/.mykermrc
1764 Customization file.
1765 .TP
1766 ~/.kdd
1767 Kermit dialing directory (see manual).
1768 .TP
1769 ~/.knd
1770 Kermit network directory (see manual).
1771 .TP
1772 ~/.ksd
1773 Kermit services directory (see manual).
1774 .TP
1775 ca_certs.pem
1776 Certificate Authority certifcates used for SSL connections.
1777 .TP
1778 ckuins.txt
1779 Installation instructions for Unix.  Also at
1780 http://www.columbia.edu/kermit/ckuins.html.
1781 .TP
1782 ckcbwr.txt
1783 General C-Kermit bugs, hints, tips.
1784 .TP
1785 ckubwr.txt
1786 Unix-specific C-Kermit bugs, hints, tips.
1787 .TP
1788 ckcplm.txt
1789 C-Kermit program logic manual.
1790 .TP
1791 ckccfg.txt
1792 C-Kermit compile-time configuration options.
1793 .TP
1794 ssh
1795 (in your PATH) SSH connection helper.
1796 .TP
1797 rz, sz, etc.
1798 (in your PATH) external protocols for XYZmodem.
1799 .TP
1800 /var/spool/locks (or whatever)
1801 UUCP lockfile for dialing out (see installation instructions).
1802 .SH AUTHORS
1803 .TP
1804 Software
1805 Frank da Cruz and Jeffrey E Altman,
1806 .br
1807 1985-present, with contributions from hundreds of others all over the
1808 world.
1809 .TP
1810 Documentation
1811 Frank da Cruz and Christine M Gianone
1812 .TP
1813 Address
1814 .nf
1815 The Kermit Project - Columbia Univerity
1816 612 West 115th Street
1817 New York NY 10025-7799
1818 USA
1819 .fi
1820 .TP
1821 E-Mail
1822 kermit@columbia.edu
1823 .TP
1824 Web
1825 http://www.columbia.edu/kermit/
1826 .fi
1827 .br