If you type the letters ftp at a DOS-Window
(Command Line) prompt, like this:
C:\WINDOWS>ftp
you will be placed into an interactive program
with its own prompt:
ftp>
Entering a question mark (?) or the word "help" will output a list
of commands on your screen like this:ftp> ?
Commands may be abbreviated. Commands are:
! delete literal prompt send
? debug ls put status
append dir mdelete pwd trace
ascii disconnect mdir quit type
bell get mget quote user
binary glob mkdir recv verbose
bye hash mls remotehelp
cd help mput rename
close lcd open rmdir
The ftp program in Windows 95 breaks the general rule of how you
obtain help information directly from the command line. In most cases, you'd
type the name followed by a space, a forward slash(/) and a question mark(?)
to get it. But ftp requires a dash(-) and an (h)
instead:C:\WINDOWS>ftp -h
Transfers files to and from a computer running an FTP server service
(sometimes called a daemon). Ftp can be used interactively.
FTP [-v] [-d] [-i] [-n] [-g] [-s:filename] [host]
-v Suppresses display of remote server responses.
-n Suppresses auto-login upon initial connection.
-i Turns off interactive prompting during multiple file
transfers.
-d Enables debugging.
-g Disables filename globbing (see GLOB command).
-s:filename Specifies a text file containing FTP commands; the
commands will automatically run after FTP starts.
host Specifies the host name or IP address of the remote
host to connect to.
These commands show that you can run ftp "in the background"
as it's called without ever having to interact with the program yourself.
For now, let's use the program interactively to figure out what the commands
actually do:
The first thing you need to be
aware of is that all the commands within ftp are
case-sensitive. Commands to your own ftp program
(those listed above) use only lower-case characters. For example,
entering "HELP" at the ftp prompt, outputs this on your screen:
?Invalid command
Here's the list of commands and a brief explanation of each one taken
directly from the ftp helps within the program (and a few
comments of my own):
? print local help information help print local help information -- both do the same thing. bell [toggle] beep when command completed debug toggle debugging mode -- presents extra information about the data passed between the connected computers. glob toggle metacharacter expansion of local file names hash toggle printing `#' for each buffer transferred trace toggle packet tracing verbose toggle verbose mode status show current status open connect to remote tftp -- you'll be asked for the URL if you don't supply it. user send new user information remotehelp get help from remote server ==> Note: Because most of the commands have critical timing requirements (such as the PORT command), it's best to leave the handling of these to the ftp program itself. However, I'd encourage you to try the commands which do not involve the transfer of files, such as STATS or STAT (depends upon the particular server) or SYST, etc., so you can get more info about the remote server you are interacting with. You will find two examples of this instruction below; a * is usually placed next to commands that are not active on the server. literal send arbitrary ftp command quote send arbitrary ftp command -- both do the same thing. ! escape to the shell -- You can carry out DOS commands on your computer while still connected to a remote, then use the "exit" command to return to your FTP session! ascii set ascii transfer type binary set binary transfer type type set file transfer type prompt force interactive prompting on multiple commandsDirectory Commands:
pwd [display] working directory [from] remote machine cd change remote working directory lcd change local working directory dir list contents of remote directory -- Use this command to display attibutes, sizes, dates and times of files. ls nlist contents of remote directory -- lists filenames only. mdir list contents of multiple remote directories mls nlist contents of multiple remote directories mkdir make directory on the remote machine rmdir remove directory on the remote machineFile Commands:
recv receive file get receive file mget get multiple files send send one file put send one file mput send multiple files append append to a file rename rename file delete delete remote file mdelete delete multiple filesEnding a Session:
close terminate ftp session disconnect terminate ftp session bye terminate ftp session and exit quit terminate ftp session and exit
Normally one would connect to a remote server by entering its URL on the same line as the ftp command itself (this way you can skip having to use the 'open' command). Our first fragment starts out this way ( I just thought you might like to see the header from Microsoft's FTP server):
C:\WINDOWS>ftp ftp.microsoft.com Connected to ftp.microsoft.com. 220 CPMSFTFTPA04 Microsoft FTP Service (Version 5.0). User (ftp.microsoft.com:(none)): anonymous 331 Anonymous access allowed, send identity (e-mail name) as password. Password: [ Note: Passwords are always hidden from view. ] 230-This is FTP.MICROSOFT.COM. Please see the dirmap.txt file for more information. 230 Anonymous user logged in.This next example is longer and contains a number of commands in action:
C:\WINDOWS>ftp ftp.simtel.net Connected to ftp.simtel.net. 220 ftphost.simtel.net FTP server (Version wu-2.5.0(1) Wed Jun 23 00:02:55 EDT 1999) ready. User (ftp.simtel.net:(none)): anonymous 331 Guest login ok, send your complete e-mail address as password. Password: 230- Welcome to FTPHost.Simtel.Net, 230- the Simtel.Net primary mirror site, 230- hosted through the courtesy of pair Networks. 230- 230-You are user 190 of 300 simultaneous users allowed. Access is 230-allowed at any time. If you have any unusual problems, please 230-report them via e-mail to support@Simtel.Net 230- 230-The Simtel.Net files are located in the /pub/simtelnet directory. 230- 230-Simtel.Net is also on the Web - http://www.simtel.net/simtel.net/ 230- 230 Guest login ok, access restrictions apply. ftp> remotehelp 214-The following commands are recognized (*'s are unimplemented). USER PORT STOR MSAM* RNTO NLST MKD CDUP PASS PASV APPE MRSQ* ABOR SITE XMKD XCUP ACCT* TYPE MLFL* MRCP* DELE SYST RMD STOU SMNT* STRU MAIL* ALLO CWD STAT XRMD SIZE REIN* MODE MSND* REST XCWD HELP PWD MDTM QUIT RETR MSOM* RNFR LIST NOOP XPWD 214 Direct comments to support@Simtel.Net. ftp> quote SYST 215 UNIX Type: L8 Version: BSD-199506 ftp> quote STAT 211-ftphost.simtel.net FTP server status: Version wu-2.5.0(1) Wed Jun 23 00:02:55 EDT 1999 Connected to 63.209.86.71 Logged in anonymously TYPE: ASCII, FORM: Nonprint; STRUcture: File; transfer MODE: Stream No data connection 0 data bytes received in 0 files 0 data bytes transmitted in 0 files 0 data bytes total in 0 files 63 traffic bytes received in 0 transfers 1613 traffic bytes transmitted in 0 transfers 1726 traffic bytes total in 0 transfers 211 End of status ftp> ls 200 PORT command successful. 150 Opening ASCII mode data connection for file list. pub dsk3 dsk4 HEADER dsk1 dsk2 bin etc .message 226 Transfer complete. 57 bytes received in 3.24 seconds (0.02 Kbytes/sec) ftp> dir 200 PORT command successful. 150 Opening ASCII mode data connection for /bin/ls. total 18 -rw-r--r-- 1 root wheel 450 Jun 25 1999 .message -rw-r--r-- 1 root wheel 423 Dec 8 1998 HEADER d--x--x--x 2 root operator 512 Dec 15 1996 bin drwxr-xr-x 3 root wheel 512 Dec 5 1998 dsk1 drwxr-xr-x 3 root wheel 512 Dec 5 1998 dsk2 drwxr-xr-x 3 root wheel 512 Dec 5 1998 dsk3 drwxr-xr-x 3 root wheel 512 Dec 5 1998 dsk4 d--x--x--x 2 root operator 512 Jun 25 1999 etc drwxr-xr-x 3 root wheel 512 Dec 5 1998 pub 226 Transfer complete. 490 bytes received in 0.11 seconds (4.45 Kbytes/sec) ftp> debug Debugging On. ftp> status Connected to ftp.simtel.net. Type: ascii; Verbose: On; Bell: Off; Prompting: On; Globbing: On Debugging: On; Hash mark printing: Off ftp> dir ---> PORT 63,209,86,71,11,220 200 PORT command successful. ---> LIST 150 Opening ASCII mode data connection for /bin/ls. total 18 -rw-r--r-- 1 root wheel 450 Jun 25 1999 .message -rw-r--r-- 1 root wheel 423 Dec 8 1998 HEADER d--x--x--x 2 root operator 512 Dec 15 1996 bin drwxr-xr-x 3 root wheel 512 Dec 5 1998 dsk1 drwxr-xr-x 3 root wheel 512 Dec 5 1998 dsk2 drwxr-xr-x 3 root wheel 512 Dec 5 1998 dsk3 drwxr-xr-x 3 root wheel 512 Dec 5 1998 dsk4 d--x--x--x 2 root operator 512 Jun 25 1999 etc drwxr-xr-x 3 root wheel 512 Dec 5 1998 pub 226 Transfer complete. 490 bytes received in 5.87 seconds (0.08 Kbytes/sec) [ I didn't get a chance to copy everything here! ] ftp> quit ---> QUIT 221-You have transferred 0 bytes in 0 files. 221-Total traffic for this session was 5827 bytes in 5 transfers.This last example is even longer and contains a file download among other things. This is the Geocities server that all the webpage authors use, so it can get pretty slow at times:
C:\WINDOWS>ftp ftp.geocities.com Connected to ftp.geocities.com. 220-Welcome to the Yahoo! GeoCities FTP server. 220-IMPORTANT: This service has changed! 220-Get all details at: 220-http://help.yahoo.com/help/us/geo/gftp/ 220- 220-No anonymous logins accepted. 220- 220-Enter new Yahoo! GeoCities member name 220 User (ftp.geocities.com:(none)): User NAME 331-Enter your Yahoo! GeoCities member password 331 Password: [ PASSWORD is always HIDDEN ] 230-Taking inventory on your homestead 230-Inventory completed 230-You are using 60.3% of your homestead. 230 You have 5.950 MB of space available. ftp> remotehelp 200 PORT command successful. 214-The following commands are recognized (*'s are unimplemented). USER QUIT MODE REST CWD STAT RMD XCUP PASS PORT RETR RNFR XCWD HELP XRMD SIZE ACCT* PASV STOR RNTO LIST NOOP PWD MDTM SMNT* TYPE APPE ABOR NLST MKD XPWD REIN* STRU ALLO DELE SYST XMKD CDUP 214 Direct comments to ftp-bugs@ftp2. ftp> quote SYST 215 UNIX Type: L8 ftp> pwd 200 PORT command successful. 257 "/Athens/6939" is current directory. --------------------------------------------------------------- [ NOTE: IF THE CONNECTION IS HAVING PROBLEMS OR IS JUST VERY BUSY, YOU MAY GET THE FOLLOWING REPLY AT ANY TIME...] 425 Can't build data connection: Connection refused. [ THE DATA MAY ALSO COME DOWN DURING A LATER COMMAND INSTEAD! ] --------------------------------------------------------------- ftp> status Connected to ftp.geocities.com. Type: ascii; Verbose: On; Bell: Off; Prompting: On; Globbing: On Debugging: Off; Hash mark printing: Off ftp> cd CHI 250 CWD command successful. ftp> dir 200 PORT command successful. 150 Opening ASCII mode data connection for /bin/ls. total 400 -rwxrw-r-x 1 webmastr webmastr 69123 May 23 1997 CG11.JPG -rwxrw-r-x 1 webmastr webmastr 80165 Jul 21 1998 STG3.jpg -rwxrw-r-x 1 webmastr webmastr 23615 Aug 20 23:05 SonarDiplomaASW.gif -rwxrw-r-x 1 webmastr webmastr 2912 Feb 17 1999 bootcamp.html -rwxrw-r-x 1 webmastr webmastr 14636 Aug 20 23:05 sonrdip.gif 226-ASCII mode 226 Transfer complete. 350 bytes received in 0.16 seconds (2.19 Kbytes/sec) ftp> cd .. 250 CWD command successful. ftp> cd XYZ 250 CWD command successful. ftp> dir 200 PORT command successful. 150 Opening ASCII mode data connection for /bin/ls. total 1392 -rwxrw-r-x 1 webmastr webmastr 60793 Jul 7 1998 ATEAM.jpg -rwxrw-r-x 1 webmastr webmastr 102535 Jul 21 1998 CircuitBoard.jpg -rwxrw-r-x 1 webmastr webmastr 36964 Jul 21 1998 Harness.jpg -rwxrw-r-x 1 webmastr webmastr 38442 Jul 21 1998 MTestSta.jpg -rwxrw-r-x 1 webmastr webmastr 43535 Jul 21 1998 Monitors.jpg -rwxrw-r-x 1 webmastr webmastr 32785 Jul 21 1998 Projectr.jpg -rwxrw-r-x 1 webmastr webmastr 13132 Jul 21 1998 PwrTranHS.jpg -rwxrw-r-x 1 webmastr webmastr 58725 Jul 7 1998 TWOBILLS.jpg -rwxrw-r-x 1 webmastr webmastr 120265 Jul 21 1998 Testing.jpg -rwxrw-r-x 1 webmastr webmastr 13174 Jul 21 1998 TimeMagGlenCa.jpg -rwxrw-r-x 1 webmastr webmastr 67882 Jul 7 1998 WORKSTAT.jpg -rwxrw-r-x 1 webmastr webmastr 38044 Jul 21 1998 Wiring.jpg -rwxrw-r-x 1 webmastr webmastr 981 Jun 22 1999 XYTRON.html -rwxrw-r-x 1 webmastr webmastr 23031 Jul 21 1998 Xfrmrs.jpg -rwxrw-r-x 1 webmastr webmastr 957 Nov 8 1998 starman.html -rwxrw-r-x 1 webmastr webmastr 221 Jul 19 1998 tron.html -rwxrw-r-x 1 webmastr webmastr 1385 Nov 8 1998 twobills.html 226-ASCII mode 226 Transfer complete. 1166 bytes received in 1.76 seconds (0.66 Kbytes/sec) ftp> get Testing.jpg 200 PORT command successful. 150 Opening ASCII mode data connection for Testing.jpg (120265 bytes). ###################################################### 226-ASCII mode 226 Transfer complete. 120687 bytes received in 47.45 seconds (2.54 Kbytes/sec) ftp> debug Debugging On. ftp> cd .. ---> CWD .. 250 CWD command successful. ftp> close ---> QUIT 221 Goodbye. ftp> quit C:\WINDOWS>