ncftp(1)


NAME
     ncftp, ftp - Internet file transfer program

SYNOPSIS
     ncftp [program options] [[open options] hostname[:pathname]]

DESCRIPTION
     NcFTP is  a  user  interface  to  the  Internet  standard  File  Transfer
     Protocol.   This  program  allows  a user to transfer files to and from a
     remote network site, and offers additional features that are not found in
     the standard interface, ftp.

FEATURES
     Program options will be explained later in this document.  Let's get down
     to business and go over the features that make this program worthwhile.

     Here is the list of section headers;  I  have  my  $MANPAGER  environment
     variable  set to use ``less -i'' so that I can skip to the section I want
     (otherwise, /regex commands to the pager won't match the section  headers
     because  of  the  formatting  codes;  the  ``-i''  can search through the
     formatting codes)

           Establishing the remote connection
           Format of the RC file
           The Recent-sites file
           Redialing a busy remote site
           Supplying a sitename from your shell's command line
           Using Colon-mode
           Using FTP-cat and FTP-more mode
           Supplying a port number with the open command
           Displaying and changing program variables
           Program variables
           Listing a remote directory
           Viewing a remote directory with your pager
           Redisplaying the last directory listing
           Fetching files from the remote host
           Viewing a remote file with your pager
           Creating a message file on the remote host
           Looking up site names and addresses
           Checking the configuration of the program
           Using the command shell
           Customizing the prompt
           Keeping a log of your file transfers
           Program options
           A sample RC file





Establishing the remote connection
     Just opening a connection to a remote server was inconvenient  enough  in
     the  stock  ftp  program  to  justify  writing  this  program.   Here  at
     NCEMRSoft, we want to do  our  business  as  quickly  and  painlessly  as
     possible.   We'd  rather  save  time and wear and tear on our metacarpals
     than bother typing entire site  names,  usernames,  and  email  addresses
     masquerading as passwords, and setting binary mode.

     We made all connections anonymous by default, and we  automatically  send
     our  email address for the password on those connections.  We allowed for
     site names to be abbreviated.

     For each commonly accessed site, you can put an  entry  in  your  program
     preferences  file  (let's call it the ``ncftprc file'' or ``RC file'' for
     short).  To open the site, from the command shell all you do is type:

           open wuarchive.wustl.edu

     or

           o wuarchive.wustl.edu

     As promised, you can abbreviate that further.  Just use any  abbreviation
     that  would  match  only  the  site  you  had  in mind.  For the previous
     example, you could try:

           o wuarc
           o wustl
           o stl
           o wu

     Any of those abbreviations would  open  wuarchive.wustl.edu  anonymously,
     sending  your  anon-password  (usually  set to your email address) as the
     password.  Keep in mind that the program tries  opening  the  first  site
     that matches the abbreviation you supplied.  So:

           o w

     might match a site named bowser.nintendo.jp if that site appeared  before
     your entry for wuarchive.wustl.edu.

     Most of the time we open remote sites anonymously, but  there  are  times
     where  you  need  to specifically open a site with an actual username and
     password.  Let's say my partner, Phil Dietz, wants to FTP  something  out
     of  my  account.   Perhaps  he  wants  to fetch the latest version of the
     source code to NcFTP so he can optimize something or add  a  new  feature
     behind  my  back.   Since  the  program opens remote sites anonymously by
     default (actually, you can change this behavior; more on that later),  he
     would  have  to  specify  a  flag to the open command so he can supply my
     username and password.  He would try:
           o -u sphygmomanometer.unl.edu

     or, more likely:

           o -u sph

     Then the program would prompt him for a username (login, whatever) and  a
     password:

           Login Name (pdietz): mgleason
           Password: ********

     If he got it right, he could raid my stuff.  If not, he'd  probably  drop
     me an email asking me to quit changing my password so often.

     There are even times where you want to FTP from your own account, like if
     you are debugging an FTP client you wrote.  At this prompt:

           Login Name (mgleason):

     I could just hit return to tell the program that I want  ``mgleason''  as
     my username, then I would enter my password.

Format of the RC file
     This release of the program is somewhat compatible  with  the  stock  ftp
     program's  .netrc  file.   However,  I  can  promise you that in the near
     future the program will use a new format, so don't invest too  much  time
     in it.

     The RC file can be named ``ncftprc'', ``netrc'', or ``.ncftprc'', but  it
     is usually named ``.netrc'' so it can be used with the stock ftp program.
     NcFTP looks in the current working directory for any of those files,  and
     then  in  your  home  directory, and after that it gives up (which is OK,
     because RC files aren't mandatory).

     The file usually starts with #set and #unset commands that do  things  to
     the  programs  variables.   The  reason for the ``#'' is so the stock ftp
     program will think they are comments.  You might have this  appearing  as
     the first few lines in your RC file (I'll explain later):

           #set debug 1
           #set pager "less -EMi"
           #unset startup-msg

     After those, you put in machine entries for each of your favorite  sites.
     Let's put in an entry for wuarchive.wustl.edu.  First you would put:

           machine wuarchive.wustl.edu


     Then you could put in your username, password, and account if you like:

           user anonymous
           password -mgleason@cse.unl.edu
           account wuarc.does.not.use.accounts

     Following that, you would add the startup macro that is run each time you
     connect to wuarchive.  You must start it with this line:

           macdef init

     Then put in the commands you want to do:

           cd /graphics/gif
           ls -lt

     After that, you end the  macro  with  a  blank  line  (important!).   The
     finished  machine  entry  would  look  like  the  following.  To make the
     transition to the impending new format  less  painful,  I  recommend  you
     adhere to this format:

           machine wuarchive.wustl.edu
                 user anonymous
                 password -mgleason@cse.unl.edu
                 account wuarc.does.not.use.accounts
                 macdef init
                       cd /graphics/gif
                       ls -lt
           t(mandatory blank line to end the macro)

     Of course, if all you want to  do  is  open  wuarchive  anonymously,  you
     needn't  bother  with  the ``user'', ``password'', and ``account'' lines.
     You may want to put them in if you plan on using the stock  ftp  program,
     though.  Try something like this:

           machine wuarchive.wustl.edu
                 macdef init
                       cd /graphics/gif
                       ls -lt
           t(mandatory blank line to end the macro)

     You can tell the program to not run the startup macro if you supply -i to
     the open command.

     Really, you should only bother adding entries for sites that you want  to
     run startup macros upon connection.  The next section explains why.




The Recent-sites file
     Each time you open a site, the program saves the name of the site and the
     last  directory  you  were  in  to  the  recent-sites file which is named
     .ncrecent and placed  in  your  home  directory.   The  program  saves  a
     predetermined  number of these sites in the file, and when it reaches the
     limit, it discards the oldest entry so it can add a new one.

     You can just go ahead and use the name of the site you want with the open
     command  if you know it is in the recent-file (and you can abbreviate the
     name, just like those in the RC file).  But if you cannot  remember  what
     the name of the site you want, all you do is run the open command with no
     site parameter:

           open

     This will pop up a list of the sites in the  recent-file,  and  sites  in
     your RC file.  At the open prompt, just type the name (or an abbreviation
     of that name) or the number preceding the site name to  open  that  site.
     After  opening  the  site you wanted, the program sets the remote working
     directory to the same one you left in the last time you called.

     If you don't like the idea of having the sites you called stored on disk,
     you can turn this feature off using an unset command, explained later.

Redialing a busy remote site
     Some remote sites limit the number of leeches, er, anonymous  connections
     at  a time to reduce the load on the host computer.  You can use the open
     command's redial feature to keep attempting connections until you get on,
     although  that  is not a very polite thing to do.  The simplest way to do
     this would be to just supply the -r option:

           open -r wuarc

     There are also options you can use to tweak redial.  The -d flag sets the
     delay  between  dials,  and  the  -g  flag sets a limit on how many dials
     should be attempting before giving  up.   If  you  don't  supply  -g  the
     program  will  dial  a day and forever (which my Number Theory professor,
     Dr. Mientka, says is longer than forever and a  day)  until  it  connects
     successfully,  or until you get sick of waiting and hit the interrupt key
     (usually ^C).

     This example dials wuarchive every ten minutes, giving  up  after  twenty
     attempts.  Note that the redial delay is specified in seconds:

           open -r -d 600 -g 20 wuarc

     Please be considerate when you  use  redialing,  so  you  won't  tax  the
     network.   Site administrators can and do get angry when they get flooded
     with connections.

Supplying a sitename from your shell's command line
     When you run the program:

           ncftp

     by itself does nothing  and  waits  for  you  to  type  commands  to  the
     program's  own  shell.  Just like the stock ftp program, you can supply a
     site name on the command line:

           ncftp wuarchive.wustl.edu

     You can also use abbreviations as usual:

           ncftp wuarc

     This is equivalent to running the program, then issuing an  open  command
     to open wuarchive.

Using Colon-mode
     The open command is not a one-trick pony.  Another option is what I  call
     colon-mode.   This  feature  is used (most of the time) from your shell's
     command line.

     In ancient times, way back during the Disco era, you could use a  program
     called  tftp  to  fetch  a  file using the Internet standard Trivial File
     Transfer Protocol. You could use that program to do something  like  this
     from within its shell:

           get wuarchive.wustl.edu:/graphics/gif/README

     and that would call wuarchive and fetch the README file.

     You can use this program to do the same thing from your  shell's  command
     line:

           csh> ncftp wuarchive.wustl.edu:/graphics/gif/README
           csh> head README

     This tells your shell, in this case the ``c-shell'' to run  NcFTP,  which
     would  open  wuarchive,  fetch  /graphics/gif/README  and  write the file
     ./README in the current working directory, and then exits.  This is  nice
     if  you don't want to browse around the remote site, and you know exactly
     want you want.  It would also come in handy in shell scripts,  where  you
     don't  want to enter the command shell, and might not want the program to
     spew output.

     You can use colon-mode to set the starting remote working directory also:

           csh> ncftp wuarchive.wustl.edu:/graphics/gif

     This would run the program, open wuarchive, and cd to the gif  directory,
     then run the program's command shell so you can browse.

     Colon-mode is also available from within the program's command shell.  At
     a prompt you can do stuff like this:

           ncftp> open wuarchive.wustl.edu:/graphics/gif/README
           ncftp> o wuarc:/graphics/gif

Using FTP-cat and FTP-more mode
     There are times where you might not want the program to  write  a  colon-
     mode  file  in the current working directory, or perhaps you want to pipe
     the output of a remote file into something else.  Colon-mode has  options
     to do this.  It was inspired by the guy who wrote the ftpcat perl script.
     The -c option tells the program to write on the standard  output  stream.
     The  -m  option pipes the file into your pager (like more) Of course this
     won't work if the thing you give colon-mode is a directory!  This example
     just dumps a remote file to stdout:

           csh> ncftp -c wuarc:/graphics/gif/README
           ...
           csh>

     This example redirects a remote file into a different location:

           csh> ncftp -c wu:/README > ~pdietz/thesis.tex

     This one shows how to use a pipeline:

           csh> ncftp -c wuarc:/README | tail | wc -l
           10
           csh>

     This shows how to page a remote file:

           csh> ncftp -m wuarc:/graphics/gif/README
           ...
           csh>

Supplying a port number with the open command
     This option just didn't fit anywhere else, so  to  finish  out  the  open
     command,  -p  lets  you supply a port number if you have to ftp to a site
     using an nonstandard port number.  Personally, I have yet to use feature,
     but its there for compatibility with the stock ftp program.

Displaying and changing program variables
     Now I'll explain the commands unique to NcFTP.  The others should perform
     the same as they would in the stock ftp program; consult the man page for
     it if you want those explained, or use  the  help  command  for  a  brief
     blurb.
     The show command is used to display program variables and their values.

           show all

     or

           show

     would display all the variables with their values.

           show var1 var2 ... varN

     would display each specified variable and its value.

     The set command changes the value of a program variable.  Its syntax is:

           set varname value

     For Boolean or Integer variables,

           set varname

     would set the value of the variable varname to 1 (true).

     The unset command can be used to set the variable to its  default  value,
     or  for Boolean and Integer variables, set the value of the variable to 0
     (false).  For String variables, you can use this to set the value  to  an
     empty string.

     You can use any of those three commands in both the command shell, or  in
     the RC file with a ``#'' prepended.

Program variables
     Each variable can be one of the following types:

     Boolean:
          Can be ``on'' or ``off'' (you can also use ``1'' or ``0'').

     Integer:
          Can be any positive or negative number, or 0.

     String:
          Is a string of characters.  If the string needs to have a  space  in
          it,  make sure you surround the whole string with double quotes in a
          set command.

     Variables follow.  Some variables are explained  later  in  the  relevant
     sections.


     anon-open (Boolean)
          Tells whether the default login mode is anonymous if on, or if  off,
          will  prompt  for a username/password.  You can always override this
          by using either -a or -u with the open command.

     anon-password (String)
          Sends this as the password when you login anonymously.   By  default
          this is your email address.

     ansi-escapes (Boolean)
          If on, the program can use boldface, underline, and inverse text.

     auto-binary (Boolean)
          If on, sets the transfer  type  to  binary  mode  immediately  after
          connection.

     debug (Integer)
          Sets the debugging level.

     gateway-login (String)
          Tells which username to use when logging in to your firewall gateway
          host.

     gateway-host (String)
          The site which is acting as your firewall gateway, or empty  if  you
          aren't using one.

     local-dir (String)
          The current local working directory.  I like to set this from my  RC
          file, so all my files go into my download directory.

     logfile (String)
          The name of your personal transfer log, or empty if you aren't using
          a transfer log.

     logsize (Integer)
          The maximum ceiling of your log file, before the program removes old
          entries.

     mprompt (Boolean)
          If on, prompts  for  each  remote  file  expanded  from  a  wildcard
          globbing expression.

     netrc (String, Read-only)
          Tells you the name of the RC file in use.

     pager (String)
          The pathname and flags of the program used  to  display  output  one
          screenful  at  a  time.   The  default  is  the value of your $PAGER
          environment variable.

     prompt (String)
          The prompt specification that expands into the prompt.

     progress-reports (Integer)
          Which progress meter to use, or 0 if you don't want progress reports
          during file transfers.

     recent-list (Boolean)
          If on, uses and updates the recent-file.

     remote-is-unix (Boolean)
          Set automatically by the program upon connection, you  may  need  to
          use  this  in  a  startup macro if the program guessed that a remote
          site was UNIX when it really is not.

     startup-msg (Boolean)
          If on, prints the opening message and tip.

     tips (Boolean)
          If on, prints a tip on how to use the program better each  time  you
          run the program.

     type (String)
          The name of the file transfer mode in use,  such  as  ``binary''  or
          ``ascii''.

     verbose (String/Integer)
          Controls the amount of output spewed by the program.  You can supply
          either  the  first  character of the name of the verbosity level, or
          its number:

     Quiet (-1)
          Won't print any output at all, even if an error occurs.

     Errors Only (0)
          No output, except when errors occur.

     Terse (1)
          Prints errors, and useful output from the remote host.

     Verbose (2)
          Prints everything, even junk output from the remote end.

Listing a remote directory
     The ls and dir commands perform in a similar manner to those of the stock
     ftp program.

     The ls command sends the FTP command ``NLST'' for you.  This command  has
     been  set so that it defaults to always listing files in columns (this is
     the -C option given to the UNIX ls command) and appending  metacharacters
     to each item name (this is the -F option), so you can see which items are
     directories,  files,  links,  etcetera.   If  you  don't  want your items
     columnized, you can try using the -1 option with ls to print one item per
     line.

     The dir command sends the FTP command ``LIST'' for you, which instead  of
     printing  just  item  names,  it  prints  item  sizes, owners, dates, and
     permissions as well.  This command is equivalent to  ``ls  -l''  on  most
     remote systems.

     The usage for both commands is the same.  Here is the one for ls:

          ls [-flags] [directory and file names] [redirection]

     Note that in this program, you can supply both flags and items to list in
     the same command.  The stock version of ftp doesn't let you do this:

           ls -lrt /info-mac/help

     Another thing that the program does which the others should have done  is
     let you supply more than one item:

           ls -lrt /info-mac/help /pub /info-mac/README

     You can also redirect the output into a file, or pipe it into  something.
     This  example  shows  how  to  list  the  contents  of the current remote
     directory, and  save  the  output  into  a  file  in  the  current  local
     directory:

           ls -t >ls.out

     Note that for this to work, there must be no whitespace between the ``>''
     and  the  filename, unlike your shell command line which allows for extra
     whitespace.  This will be (actually, is) fixed in a future version of the
     program.

     These examples show how to use a pipe:

           ls -t |tail
           dir -t "|less -CM"
           ls -t "|tail | wc"

     Like the redirection example, there must be  no  whitespace  between  the
     first pipe character and the rest of the stuff.  The trick is that it has
     to appear as one argument to the commands.  The second and third examples
     illustrate  the use of double quotes to squeeze extra parameters in.  The
     second example can be done without all that typing.  See the descriptions
     of the pdir and pls commands below.


Viewing a remote directory with your pager
     Didn't you hate it when you listed a remote directory, only to have  most
     of  the  stuff  scrolled off your terminal before you could read it?  The
     pls and pdir commands take care of this  for  you.   As  you  might  have
     guessed,  they  perform exactly like their regular counterparts, only you
     view them with your pager.  The pager to use is controlled by  the  pager
     program variable.

Redisplaying the last directory listing
     The program saves the listing into a local buffer, so if you need to  see
     it  again  (probably  forgot about pdir) you can use the redir and predir
     commands for this.

Fetching files from the remote host
     The get and mget retrieve remote files for you.  The usage for get is:

           get remote-file [local-file or redirection]

     To fetch /pub/README and write it as a file named ./junk/readme, try:

           get /pub/README ./junk/readme

     To fetch /pub/README and write it as ./README, just do:

           get /pub/README

     This lets you fetch a file using its whole pathname, and write a copy  of
     it in the current directory, without having to bother with typing a local
     filename.  In the unlikely event that you  have  write  permission  to  a
     directory called /pub on your local machine, it would write ``README'' in
     that directory.

     Most of the time the  file  you  want  will  be  in  the  current  remote
     directory, so you can just do these:

           get README
           get README ./junk/readme

     You can also use a redirection for get, just like you can  with  the  ls,
     dir,  and  redir  commands.  As described earlier, you have to conform to
     the format below for this release of the program:

           get README >/dev/null
           get README |head
           get README "|head -8"
           get README "|less -EMi"




     The last example is facilitated by the page command described later.

     The get command can also use a wildcard expression in an attempt to match
     exactly  one  remote file.  I call it ``Poor Man's File Completion.''  If
     you've done a remote listing, and you decide you want to download a  file
     by the name of ``obnoxiouslylongpackagename.tar.Z'', you can use ``PMFC''
     to save some keystrokes.  Choose an expression that will only match  that
     one file, then use it with get:

           get obn*.Z a.tar.Z

     If your pattern was unique, get  will  fetch  that  file  only.   If  the
     pattern matched more than one file, the program will bitch and moan.

     The mget command is used to fetch many files at a time.   The  difference
     between  get  and  mget is that get lets you write only one file, but you
     can put it in a different  directory,  while  mget  fetches  many  files,
     always writing them in the current local directory.  This example fetches
     several remote files at once:

           mget a.file.Z b.file.Z c.tar d.tar.Z

     The mget command, and its ugly sisters, mput  and  mdelete  let  you  use
     wildcard expressions.  I could have done the previous example as:

           mget *.Z c.tar

     instead.  The ``m'' commands will verify  each  file,  if  you  have  the
     program variable mprompt set.

Viewing a remote file with your pager
     If you would like to read a file on the remote host without saving a copy
     of  it  on  your  machine,  you  can  use  the page (or more if you wish)
     command:

           page README
           page obn*README
           page README.Z

     The second example show that you can use ``PMFC'' like you can  for  get.
     The  third  example  will  work also, because if the program knows how to
     decompress the file, it will do so before feeding it to your  pager.   As
     stated  earlier, you can change the program to use to page by setting the
     program variable pager.

Creating a message file on the remote host
     Use the create an empty  file  on  the  remote  site.   Sometimes  it  is
     necessary  to  leave  a  note  if  you can't get in touch with the remote
     site's administrator.  For example if a file is corrupted, you could try:

           create Foo.tar_is_corrupt

     in hopes that the original uploader will replace it.

Looking up site names and addresses
     You can use the program's builtin mini-nslookup facility.  If you  wanted
     to know the site's IP number, but only knew the name you could do:

           lookup cse.unl.edu

     This  would  spit  out  IP  number  for   that   site,   in   this   case
     ``129.93.1.12''.   If you needed to know what a site's name was, but only
     knew the IP number, try:

           lookup 129.93.1.12

     This would spit out the name for that site, in this case ``cse.unl.edu''.

Checking the configuration of the program
     Use the version command to  print  version  and  compilation  information
     about  the  program.  This will also tell you which optional features are
     compiled into the program, such as logging to the system  log  and  which
     command line editor (if any) has been installed.

     The author's  email  address  is  listed,  and  if  you  need  to  report
     something, send the output of this command along with your message.

Using the command shell
     Just like the stock ftp program, you type commands to it  until  you  get
     bored and hit either ^D or type the quit command.

     The program supports links to popular command line editing libraries.  If
     the  person  who compiled it went to the effort, you will be able to edit
     the command line with arrow keys and other  editing  commands,  and  also
     scroll  up  and down in the command line history, usually with the up and
     down arrows.  You  can  check  the  version  command  to  see  if  either
     ``GETLINE'' or ``READLINE'' are installed.

Customizing the prompt
     You can set the shell's prompt string to whatever you like.  You can  use
     several metacharacters that expand into something each prompt.  The ``%''
     flags are passed to strftime(3), so you can put the date or time  in  the
     prompt formatted as you like it:

           set prompt "%I:%M ncftp>"

     That would the current time in the prompt.



     The ``@'' flags are expanded by the program itself.  Here's the  list  of
     them.

     If you have an ANSI-compatible terminal, or you have the program variable
     ansi-escapes  set,  you  can  use  @B,  @I,  and  @U to turn on boldface,
     inverse, and underline text respectively  (otherwise  they  won't  insert
     anything).   You  can  also use @R to turn on inverse (reverse) text.  @P
     sets the text back to plain text.

     @D Inserts the full path of the current remote directory.  The @J flag is
     similar except it inserts only the directory name.

     @H Inserts the name of the remote host.  @C inserts the host and  current
     directory      path      in      colon-mode      format,      such     as
     ``cse.unl.edu:/pub/mgleason'', or ``(not connected)''.  The  @c  flag  is
     similar,  only it will insert ``cse.unl.edu:/pub/mgleason'' and a newline
     if connected, otherwise it prints nothing.  The default prompt uses  this
     flag to print a two line prompt when connected and a one line prompt when
     not connected.

     @E or @!  inserts the event number (how many commands you've typed).

     @M inserts ``(Mail) '' if mail has arrived since running the program.

     @N inserts a newline character.

Keeping a log of your file transfers
     You can have the program keep a personal log file.  I find it  is  useful
     so  I  can  see where I got a certain file, or what the name of that site
     was I called two weeks ago.

     To use a log, add:

           #set logfile ~/.ftplog

     (or whatever you want to name the log) to your RC file.  I don't want  my
     log growing too large and using up all my disk space, so I also have:

           #set logsize 10240

     in my RC file.  If you set the limit on the maximum log size, the program
     will keep the log file at or below that size, discarding old entries.

     Note that this is different from having  SYSLOG  appear  in  the  version
     command's  output.   When  this  is  on, your actions are recorded to the
     system log, so your system administrator can make sure you  aren't  doing
     anything ``bad.''



Program options
     Remember that you can treat the command line like an open command, so all
     lowercase  options  are  passed  to  the  open command, and the uppercase
     options are handled by the  main  program.   The  uppercase  options  are
     described  below;  refer  to  the  open  command  for descriptions of its
     options.

     -D x sets the debugging level to x.

     -H   runs the version command and exits, so you can save the output of it
          to use when you need to mail me something.

     -I   toggles the mprompt variable; this  is  provided  for  compatibility
          with ``ftp -i''.

     -N   disables reading of the RC file; this is provided for  compatibility
          with ``ftp -n''.

     -V x sets verbosity to level x (-1, 0, 1,  2)  or  (quiet,  errs,  terse,
          verbose).   See  the description of the verbose program variable for
          more information.

     Here are some example command lines.  Again, see the description  of  the
     open  command  (especially  colon-mode  and  FTP-cat  mode)  and  all its
     functions for more information.

     This just enters the NcFTP command shell:

           csh> ncftp

     This fetches CONTENTS and then quits:

           csh> ncftp cse.unl.edu:/pub/mgleason/CONTENTS

     Some others examples, with open options and main  program  options  mixed
     in:

           csh> ncftp -V quiet -u ftp.unl.edu
           csh> ncftp -c cse.unl.edu:/pub/mgleason/CONTENTS
           csh> ncftp -D 2 -r -d 120 -g 10 -N ftp.unl.edu

A sample RC file
     Here is a sample RC file:

           #set logfile ~/.ftplog
           #set progress-reports 2
           #set local-dir /usr/tmp/zz
           #set prompt "@B@E @UNcFTP@P @B@M@D@P ->"

           machine sumex-aim.stanford.edu
                 macdef init
                       cd /info-mac
                       get ./help/recent-files.txt "|grep -v '.abs' > sumex
                       !less sumex
                       pwd

           # This site is in here just so I can use ``apple''
           # as an abbreviation.
           machine ftp.apple.com

           # NcFTP will only ask for your password:
           machine cse.unl.edu
                 login mgleason

           # You can supply a login and a password:
           machine fake.machine.unl.edu
                 login mgleason
                 password mypass
                 macdef init
                 cd ./foo/bar

           # If an antiquated non-UNIX machine doesn't use
           # the "SYST" command, you may need to unset
           # remote-is-unix, if the remote host complains
           # about ``ls -CF''.
           machine some.vms.unl.edu
                 macdef init
                 unset remote-is-unix


AUTHORS
     NcFTP was written by Mike Gleason, NCEMRSoft (mgleason@cse.unl.edu),  and
     based  on  code  by the authors of the ftp from the BSD 4.3 distribution.
     NcFTP is copyrighted 1992, 1993  by  NCEMRSoft  and  1985,  1989  by  the
     Regents of California.

     Ideas   and   some   code   contributed   by   Phil   Dietz,    NCEMRSoft
     (pdietz@cse.unl.edu).  Testing and debugging done by Phil and Kok Hon Yin
     (hkok@cse.unl.edu).

     Extensive   man   page   formatting   work   by   DaviD   W.    Sanderson
     (dws@ssec.wisc.edu).

BUGS
     Correct execution of many commands depends upon proper  behavior  by  the
     remote server.

     The remote server may drop the connection if you take a long time to page
     remote files.

     Termcap padding is not correctly displayed.

     There    are    no    such    sites    named    bowser.nintendo.jp     or
     sphygmomanometer.unl.edu.

SEE ALSO
     strftime(3), ftpd(8), ftp(1), nslookup(1), compress(1), gzip(1), zcat(1),
     fsp(1), archie(1), tftp(1).