ftp命令是标准的文件传输协议的用户接口。ftp是在TCP/IP网络上的计算机之间传输文件的简单有效的方法。它允许用户传输ASCII文件和二进制文件。
在ftp会话过程中,用户可以通过使用ftp客户程序连接到另一台计算机上。从此,用户可以在目录中上下移动、列出目录内容、把文件从远程机拷贝到本地机上、把文件从本地机传输到远程系统中。需要注意的是,如果用户没有那个文件的存取权限,就不能从远程系统中获得文件或向远程系统传输文件。
为了使用ftp来传输文件,用户必须知道远程计算机上的合法用户名和口令。这个用户名/口令的组合用来确认ftp会话,并用来确定用户对要传输的文件可以进行什么样的访问。另外,用户显然需要知道对其进行ftp会话的计算机的名字或IP地址。
Ftp命令的功能是在本地机和远程机之间传送文件。该命令的一般格式如下:
$ ftp主机名/IP
其中“主机名/IP”是所要连接的远程机的主机名或IP地址。在命令行中,主机名属于选项,如果指定主机名,ftp将试图与远程机的ftp服务程序进行连接;如果没有指定主机名,ftp将给出提示符,等待用户输入命令:
$ ftp
ftp>
此时在ftp>提示符后面输入open命令加主机名或IP地址,将试图连接指定的主机。
不管使用哪一种方法,如果连接成功,需要在远程机上登录。用户如果在远程机上有帐号,就可以通过ftp使用这一帐号并需要提供口令。在远程机上的用户帐号的读写权限决定该用户在远程机上能下载什么文件和将上载文件放到哪个目录中。
如果没有远程机的专用登录帐号,许多ftp站点设有可以使用的特殊帐号。这个帐号的登录名为anonymous(也称为匿名ftp),当使用这一帐号时,要求输入email地址作为口令。
如果远程系统提供匿名ftp服务,用户使用这项服务可以登录到特殊的,供公开使用的目录。一般专门提供两个目录:pub目录和incoming目录。pub目录包含该站点供公众使用的所有文件,incoming目录存放上载到该站点的文件。
一旦用户使用ftp在远程站点上登录成功,将得到“ftp>”提示符。现在可以自由使用ftp提供的命令,可以用help命令取得可供使用的命令清单,也可以在help命令后面指定具体的命令名称,获得这条命令的说明。
最常用的命令有:
1)HELP、 ?、RHEIP、REMOTEHELP
HELP显示LOCAL端的命令说明,若不接受则显示所有可用命令;
?相当于HELP,例如:?CD:
RHELP同HELP,只是它用来显示REMOTE端的命令说明;
REMOTEHELP相当于RHELP。
2)ASC(ASCll)、Bm(BmARY)、IMAGE、TYPE
ASCII切换传输模式为文字模式(只能用来传送DOC文件,因为是7-BIT);
BINARY切换传输模式为二进制模式(除文字文件外皆用此模式);
IMAGE相当于BINARY:
TYPE让你更改或显示目前传输模式。
3)BYE、QUIT[quit]
BYE退出FTP:
QUIT相当于BYE。
4)CD、CDUP、LCD、P~WD、!
CD改变当前工作目录,例如:CD\PUB;[cwd]
CDUP回到上一层目录,相当于你打CD..:
LCD让你更改或显示LOCAL端的工作目录,例如:LCD\TMP;
PWD显示目前的工作目录(REMOTE端):
!让你执行外壳命令,例如:!LS。
5)DELETE、MDELETE、RENAME
DELETE删除REMOTE端的文件:
MDELETE批量删除文件,需配合?或,*
RENAME更改REMOTE端的文件名。
6)GET、MGET、PUT、MPUT、RECV、SEND
GET下传文件;
MGET批量下传文件,需配合万用字元,例如:MGET*.GZ;
PUT上传文件;
MPUT批量上传文件,需配合万用字元;
RECV相当于GET(RECV为RECEWE的简写):
SEND相当于PUT。
7)HASH、PROMPT、VERBOSE、STATUS、BELL
HASH切换#字号的出现,每一个#字号表示传送了1024/8192BYTES:
PROMPT切换iNTERACTIVEON/OFF;
VERBOSE切换所有文件传输过程的显示;
STATUS显示目前的一些参数:
BELL当指令做完时会发出叫声。
8)LS、DIR、MLS、MDIR、MKDIR、RMDIR
LS有点象UNIX下的LS(LIST)命令:
DIR相当于LS-L(LIST-LONG);
MLS只是将远端某目 录下的文件存于LOCAL端的某文件里;
MDIR相当于MLS;
MKDIR象DOS下的MD(创建子目录)一样:
RMDIR象DOS下的RD(删除子目录)一样。
9)OPEN、CLOSE、DISCONNECT、USER ·
OPEN连接某个远端FTP服务器;
CLOSE关闭目前的连接; DISCONNECT相当于CLOSE;
USER再输入一次用户名和口令(有点像UNIX下的SU)。
ls列出远程机的当前目录
cd在远程机上改变工作目录
lcd在本地机上改变工作目录
ascii设置文件传输方式为ASCII模式
binary设置文件传输方式为二进制模式
close终止当前的ftp会话
hash每次传输完数据缓冲区中的数据后就显示一个#号
get(mget)从远程机传送指定文件到本地机
put(mput)从本地机传送指定文件到远程机
open连接远程ftp站点
quit断开与远程机的连接并退出ftp
?显示本地帮助信息
!转到Shell中
下面简单将ftp常用命令作一简介。
启动ftp会话
open命令用于打开一个与远程主机的会话。该命令的一般格式是:
open主机名/IP
如果在ftp会话期间要与一个以上的站点连接,通常只用不带参数的ftp命令。如果在会话期间只想与一台计算机连接,那么在命令行上指定远程主机名或IP地址作为ftp命令的参数。
终止ftp会话
close、disconnect、quit和bye命令用于终止与远程机的会话。close和disronnect命令关闭与远程机的连接,但是使用户留在本地计算机的ftp程序中。quit和bye命令都关闭用户与远程机的连接,然后退出用户机上的ftp程序。
改变目录
“cd[目录]”命令用于在ftp会话期间改变远程机上的目录,lcd命令改变本地目录,使用户能指定查找或放置本地文件的位置。
远程目录列表
ls命令列出远程目录的内容,就像使用一个交互shell中的ls命令一样。ls命令的一般格式是:
ls [目录][本地文件]
如果指定了目录作为参数,那么ls就列出该目录的内容。如果给出一个本地文件的名字,那么这个目录列表被放入本地机上您指定的这个文件中。
从远程系统获取文件
get和mget命令用于从远程机上获取文件。get命令的一般格式为:
get文件名
您还可以给出本地文件名,这个文件名是这个要获取的文件在您的本地机上创建时的文件名。如果您不给出一个本地文件名,那么就使用远程文件原来的名字。
mget命令一次获取多个远程文件。mget命令的一般格式为:
mget文件名列表
使用用空格分隔的或带通配符的文件名列表来指定要获取的文件,对其中的每个文件都要求用户确认是否传送。
向远程系统发送文件
put和mput命令用于向远程机发送文件。Put命令的一般格式为:
put文件名
mput命令一次发送多个本地文件,mput命令的一般格式为:
mput文件名列表
使用用空格分隔的或带通配符的文件名列表来指定要发送的文件。对其中的每个文件都要求用户确认是否发送。
改变文件传输模式
默认情况下,ftp按ASCII模式传输文件,用户也可以指定其他模式。ascii和brinary命令的功能是设置传输的模式。用ASCII模式传输文件对纯文本是非常好的,但为避免对二进制文件的破坏,用户可以以二进制模式传输文件。
检查传输状态
传输大型文件时,可能会发现让ftp提供关于传输情况的反馈信息是非常有用的。hash命令使ftp在每次传输完数据缓冲区中的数据后,就在屏幕上打印一个#字符。本命令在发送和接收文件时都可以使用。
ftp中的本地命令
当您使用ftp时,字符“!”用于向本地机上的命令shell传送一个命令。如果用户处在ftp会话中,需要shell做某些事,就很有用。例如用户要建立一个目录来保存接收到的文件。如果输入!mkdirnew_dir,那么linux就在用户当前的本地目录中创建一个名为new_dir 的目录。
从远程机grunthos下载二进制数据文件的典型对话过程如下:
$ ftpgrunthos
Connected togrunthos
220 grunthos ftpserver
Name (grunthos:pc):anonymous
33l Guest login ok, sendyour complete e-mail address as password.
Password:
230 Guest 1ogin ok,access restrictions apply.
Remote system type isUNIX.
ftp > cdpub
250 CWD commandsuccessful.
ftp >ls
200 PORT commandsuccessful.
l50 opening ASCII modedata connection for /bin/1s.
totalll4
rog1
rog2
226 Transfer comp1ete.
ftp >binary
200 type set toI.
ftp >hash
Hash mark printing on(1024 bytes/hash mark).
ftp > getrog1
200 PORT commandsuccessfu1.
150 opening BINARY modedata connection for rogl (l4684 bytes).
# # # # # # # # # # # ##
226 Transfercomplete.
14684 bytes received in0.0473 secs (3e + 02 Kbytes/sec)
ftp >quit
22lGoodbye.
如果你想学习使用进行后台FTP下载,那么就必须学习FTP指令。
FTP的命令行格式为: ftp -v -d -i -n -g [主机名] ,
其中 -v显示远程服务器的所有响应信息;
-n 限制ftp的自动登录,即不使用;.netrc文件;
-d使用调试方式;
-g取消全局文件名。
FTP使用的内部命令如下(中括号表示可选项):
1.![cmd[args>:在本地机中执行交互shell,exit回到ftp环境,如:!ls*.zip
2.$ macro-ame[args]:执行宏定义macro-name。
3.account[password]:提供登录远程系统成功后访问系统资源所需的补充口令。
4.appendlocal-file[remote-file]:将本地文件追加到远程系统主机,若未指定远程系统文件名,则使用本地文件名。
5.ascii:使用ascii类型传输方式。
6.bell:每个命令执行完毕后计算机响铃一次。
7.bin:使用二进制文件传输方式。
8.bye:退出ftp会话过程。
9.case:在使用mget时,将远程主机文件名中的大写转为小写字母。
10.cdremote-dir:进入远程主机目录。
11.cdup:进入远程主机目录的父目录。
12.chmod modefile-name:将远程主机文件file-name的存取方式设置为mode,如:chmod 777a.out。
13.close:中断与远程服务器的ftp会话(与open对应)。
14.cr:使用asscii方式传输文件时,将回车换行转换为回行。
15.deleteremote-file:删除远程主机文件。
16.debug[debug-value]:设置调试方式, 显示发送至远程主机的每条命令,如:deb up3,若设为0,表示取消debug。
17.dir[remote-dir][local-file]:显示远程主机目录,并将结果存入本地文件
18.disconnection:同close。
19.formformat:将文件传输方式设置为format,缺省为file方式。
20.getremote-file[local-file]:将远程主机的文件remote-file传至本地硬盘的local-file。
21.glob:设置mdelete,mget,mput的文件名扩展,缺省时不扩展文件名,同命令行的-g参数。
22.hash:每传输1024字节,显示一个hash符号(#)。
23.help[cmd]:显示ftp内部命令cmd的帮助信息,如:helpget。
24.idle[seconds]:将远程服务器的休眠计时器设为[seconds]秒。
25.image:设置二进制传输方式(同binary)。
26.lcd[dir]:将本地工作目录切换至dir。
27.ls[remote-dir][local-file]:显示远程目录remote-dir,并存入本地文件local-file。
28.macdefmacro-name:定义一个宏,遇到macdef下的空行时,宏定义结束。
29.mdelete[remote-file]:删除远程主机文件。
30.mdir remote-fileslocal-file:与dir类似,但可指定多个远程文件,如 :mdir *.o.*.zipoutfile。
31.mgetremote-files:传输多个远程文件。
32.mkdirdir-name:在远程主机中建一目录。
33.mls remote-filelocal-file:同nlist,但可指定多个文件名。
34.mode[modename]:将文件传输方式设置为modename,缺省为stream方式。
35.modtimefile-name:显示远程主机文件的最后修改时间。
36.mputlocal-file:将多个文件传输至远程主机。
37.newer file-name:如果远程机中file-name的修改时间比本地硬盘同名文件的时间更近,则重传该文件。
38.nlist[remote-dir][local-file]:显示远程主机目录的文件清单,并存入本地硬盘的local-file。
39.nmap[inpatternoutpattern]:设置文件名映射机制, 使得文件传输时,文件中的某些字符相互转换, 如:nmap$1.$2.$3[$1,$2].[$2,$3],则传输文件a1.a2.a3时,文件名变为a1,a2。该命令特别适用于远程主机为非UNIX机的情况。
40.ntrans[inchars[outchars>:设置文件名字符的翻译机制,如ntrans1R,则文件名LLL将变为RRR。
41.openhost[port]:建立指定ftp服务器连接,可指定连接端口。
42.passive:进入被动传输方式。
43.prompt:设置多个文件传输时的交互提示。
44.proxyftp-cmd:在次要控制连接中,执行一条ftp命令,该命令允许连接两个ftp服务器,以在两个服务器间传输文件。第一条ftp命令必须为open,以首先建立两个服务器间的连接。
45.putlocal-file[remote-file]:将本地文件local-file传送至远程主机。
46.pwd:显示远程主机的当前工作目录。
47.quit:同bye,退出ftp会话。
48.quotearg1,arg2...:将参数逐字发至远程ftp服务器,如:quote syst.
49.recvremote-file[local-file]:同get。
50.regetremote-file[local-file]:类似于get,但若local-file存在,则从上次传输中断处续传。
51.rhelp[cmd-name]:请求获得远程主机的帮助。
52.rstatus[file-name]:若未指定文件名,则显示远程主机的状态,否则显示文件状态。
53.rename[from][to]:更改远程主机文件名。
54.reset:清除回答队列。
55.restartmarker:从指定的标志marker处,重新开始get或put,如:restart 130。
56.rmdirdir-name:删除远程主机目录。
57.runique:设置文件名只一性存储,若文件存在,则在原文件后加后缀.1,.2等。
58.sendlocal-file[remote-file]:同put。
59.sendport:设置PORT命令的使用。
60.sitearg1,arg2...:将参数作为SITE命令逐字发送至远程ftp主机。
61.sizefile-name:显示远程主机文件大小,如:site idle 7200。
62.status:显示当前ftp状态。
63.struct[struct-name]:将文件传输结构设置为struct-name,缺省时使用stream结构。
64.sunique:将远程主机文件名存储设置为只一(与runique对应)。
65.system:显示远程主机的操作系统类型。
66.tenex:将文件传输类型设置为TENEX机的所需的类型。
67.tick:设置传输时的字节计数器。
68.trace:设置包跟踪。
69.type[type-name]:设置文件传输类型为type-name,缺省为ascii,如:typebinary,设置二进制传输方式。
70.umask[newmask]:将远程服务器的缺省umask设置为newmask,如:umask3
71.useruser-name[password][account]:向远程主机表明自己的身份,需要口令时,必须输入口令,如:useranonymous my@email。
72.verbose:同命令行的-v参数,即设置详尽报告方式,ftp 服务器的所有响应都将显示给用户,缺省为on.
73.?[cmd]:同help.