ckututor.txt 70 KB

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