标题：ftp命令
简介
与大多数Internet服务一样，FTP也是一个客户机/服务器系统。用户通过一个支持FTP协议的客户机程序，连接到在远程主机上的FTP服务器程序。用户通过客户机程序向服务器程序发出FTP命令，服务器程序执行用户所发出的FTP命令，并将执行的结果返回到客户机。
FTP命令是Internet用户使用最频繁的命令之一，不论是在DOS、Windows的命令行、LINUX、UNⅨ
还是AⅨ操作系统下都可以使用FTP，都会遇到大量的FTP内部命令，熟悉并灵活应用FTP命令，可以大大方便使用者，并收到事半功倍之效。
比如说，用户发出一条命令，要求服务器向用户传送某一个文件的一份拷贝，服务器会响应这条命令，将指定文件送至用户的机器上。客户机程序代表用户接收到这个文件，将其存放在用户目录中。
基础命令
进入想要连接的FTP站点后，用户就可以进行相应的文件传输操作了，其中一些重要 的命令及相似的命令 如下：
1、HELP、、RHELP、REMOTEHELP
HELP显示LOCAL端的命令说明，若不接受则显示所有可用命令；
?相当于HELP，例如：?CD：
RHELP同HELP，只是它用来显示REMOTE端的命令说明；
REMOTEHELP相当于RHELP。
2、ASC(ASCll）、bin(BINARY）、IMAGE、TYPE
ASCⅡ切换传输模式为文字模式（只能用来传送DOC文件，因为是7-BIT）；
BINARY切换传输模式为二进制模式（除文字文件外皆用此模式）；
IMAGE相当于BINARY：
TYPE让你更改或显示目前传输模式。
3、BYE、QUIT
BYE退出FTP：
QUIT相当于BYE。
4、CD、CDUP、LCD、P～WD、 !
CD改变当前工作目录，例如：CD\PUB；
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切换iNTERACTⅣEON/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再输入一次用户名和口令（有点像UNⅨ下的SU）。
命令进阶
语法ftp [ -d] [ -g ] [ -i ] [ -n ] [ -v] [ -f ] [ -k realm] [-q[-C]][ HostName [ Port ] ]
-C 允许用户指定：通过 send_file 命令发出的文件必须在网络高速缓冲区（NBC）中经过缓存处理。此标志必须在指定了-q 标志的情况下使用。只有当文件在无保护的情况下以二进制方式发送时此标志才适用。
-d 将有关 ftp 命令操作的调试信息发送给 syslogd 守护进程。如果您指定-d 标志，您必须编辑/etc/syslog.conf 文件并添加下列中的一项：
OR
user.debug FileName
请注意：syslogd 守护进程调试级别包含信息级别消息。
如果不编辑/etc/syslog.conf 文件，则不会产生消息。变更了/etc/syslog.conf 文件之后，请运行 refresh -s syslogd 或 kill -1 SyslogdPID 命令，以通知 syslogd 守护进程其配置文件的变更。关于调试级别的更多信息，请参考/etc/syslog.conf 文件。也请参考 debug 子命令。
-g 禁用文件名中的元字符拓展。解释元字符可参考为扩展（有时叫做文件名匹配替换）文件名。请参考 glob 子命令。
-i 关闭多文件传送中的交互式提示。请参考 prompt、mget、mput 和 mdelete 子命令，以取得多文件传送中的提示的描述。
-n 防止在起始连接中的自动登录。否则， ftp 命令会搜索$HOME/.netrc 登录项，该登录项描述了远程主机的登录和初始化过程。请参考 user 子命令。
-q 允许用户指定：send_file 子例程必须用于在网络上发送文件。只有当文件在无保护的情况下以二进制方式发送时此标志才适用。
-v 显示远程服务器的全部响应，并提供数据传输的统计信息。当 ftp 命令的输出是到终端（如控制台或显示）时，此显示方式是缺省方式。
如果 stdin 不是终端，除非用户调用带有-v 标志的 ftp 命令，或发送 verbose 子命令，否则 ftp 详细方式将禁用。
-f 导致转发凭证。如果Kerberos 5 不是当前认证方法，则此标志将被忽略。
-k realm 如果远程站的域不同于本地系统的域，系统将允许用户指定远程站的域。因此，域和DCE 单元是同义的。如果Kerberos 5 不是当前认证方法，则此标志将被忽略。
?详解1、[crud[args)1：在本地机中执行交互shell，exit回到FTP环境， 列如：！LS*．zip． 
2、$macro-amc[args儿执行宏定义macro-name。
3、accountlpassword]：提供登录远程系统成功后访问系统资源所需的补充口令。
4、append local-file[remote-file]：将本地文件追加到远程系统主机，若未指定远系统文件名，则使用本地文件名。
5、ASCii：使用ascⅡ型传输方式。
6、bell：每个命令执行完毕后计算机响铃—次
7、bin：使用二进制文件传输方式
8、bye．．退出FTP会话过程—
9、case：在使用mget时，将远程主文件名中的大写字母转为小写字母
10、cdremote·dir：进入远程主机目录。
11、cdup．．进入远程主机目录的父目录。
12、chmodmodefile-name：将远程主机文件file-name的存取方式设置为mode。列如：chmod777a．OUt。
13、close：中断与远程服务器的FTP会话（与open对应）。
14、cr：使用ASCii“方式传输文件时，将回车换行转换为回行
15、deleteremote-file-删除远程主机文件：
16、debugldebug-value3：．设置调试方式，显示发送至远程主机的每条命令。例如：debup3，若设为0，表示取消debug。
17、dir[remote-dir][Local-file]：显示远程主机目录，并将结果存入本地文件local-file：
18、disconnection-．同close。
19、formformat：将文件传输方式设置为format，缺省为file方式。
20、getremote-file[10cal-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-fileo
28、macdefmacro-name：定义一个宏，遇到macdef下的空行时，宏定义结束。
29、mdelete[remote-file]：删除远程主机文件。
30、mdirremote-fileslocal-file：与dlr类似，但可指定多个远程文件。列如mdir*．O．*．zipoutfiLe。
31、mgetremote-files：传输多个远程文件。
32、mkdirdirname：在远程主机中建一目录。
33、misremote-filelocal-file．同nlist，但可指定多个文件名。
34、mode[modename]：将文件传输方式设置为modename，缺省为stream方式。
35、modtimefile-name．．显示远程主机文件的最后修改时间。·
36、mputlocal-file：将多个文件传输至远程主机，
37、newerfile-name：如果远程机中file-name的修改时间比本地硬盘同名文件的时间巨近，则重新传输该文件。·
38、nlist正remote·di41local-file3：显示远程主机目录的文件清单，并存入本地硬盘的local-fileo
39、nmap[npattem outpattem]设置文件名映射机制，使得文件传输时，文件中的某些字符相互转换，如：nmapSl．S2．S3[，][，]，则传输文件a1．a2．a3时，文件名变为a1，a20该命令特别适用于远程主机为非UNⅨ机的情况o
40、ntrans[Inchars[outchars]]设置文件名字符的翻译机制，如ntranslR，则文件名LLI将变为RRR。
41、openhost[port]：建立指定FTP服务器连接，可指定连接端口。
42、passive：进入被动传输方式。
43、prompt：设置多个文件传输时的交互提示。
44、proxy FTP-cmd：在次要控制连接中，执行一条FTP命令，该命令允许连接两个FTP服务器，以在两个服务器间传输文件。第一条FTP命令必须为open，以首先建立两个服务器间的连接。
45、putlocal-file[remote-file]：将本地文件local-file传送至远程主机。
46、pwd：显示远程主机的当前工作目录。
47、qmt-．同bye，退出FTP会话。
48、quote argl，arg2。：将参数逐字发至远程卸服务器，如：quote， syst。
49、recvremote-file[Local-file）：同get。
50、reget remote-file[Local-file]：类似于get，但若local-file存在，则从上次传输中断处继续传输。
51、rhelp[cmd-name]：请求获得远程主机的帮助。
52、rstatus[FILe-name]：若未指定文件名，则显示远程主机的状态，否则显示文件状态，
53、rename[FRom)[to]：更改远程主机文件名。
54、reset：清除回答队列。
55、restart marker：从指定的标志marker处，重新开始get或put，如：restartl30。
56、rmdirdir-name：删除远程主机目录。
57、mnique：设置文件名惟一性存储，若文件存在，则在原文件后加后缀．1，．2等
58、send local-file[remote-file）：同put
59、sendport：设置PORT命令的使用。
60、siteargl，arg2。：将参数作为SITE命令逐字发送至远程卸主机。
61、sizefile-name：显示远程主机文件大小，如：Slteidle7200。
62、status：。显示当前FTP状态。·
63、struct[struct-name]：将文件传输结构设置为struct-name，缺省时使用stream结构。
64、suniclue：将远程主机文件名存储设置为惟一（与mnique对应）。
65、system：显示远程主机的操作系统类型。
66、tenex：将文件：传输类型设置为TENEX机的所需的类型
67、tick：设置传输时的字节计数器
68、trace：设置包跟踪。
69、type[type-name）：设置文件传输类型为type-name，缺省为ascii，例如：typebinary，设置二进制传输方式。
70、umask[newmask）：将远程服务器的缺省umask设置为newmask。例如：umask 3。
71、user user-name [passwordⅡaccount]：向远程主机表明自己的身份，需要口令时，必须输入口令，如：useranonymousmy@emaiL。
72、verbose：同命令行的-v参数，即设置详尽报告方式，FTP服务器的所有响应都将显示给用户，缺省为on。
73、[cmd]：同help。
其它
FTP服务器及匿名FTP
FTP的全称是File Transfer Protocol(文件传输协议)，顾名思义，就是专门用来传输文件的协议。FTP的主要作用，就是让用户连接上一个远程计算机(这些计算机上运行着 FTP服务器程序)察看远程计算机有哪些文件，然后把文件从远程计算机上拷到本地计算机，或把本地计算机的文件送到远程计算机去。
其实 早期在Internet上传输文件，并不是一件容易的事，我们知道 Internet是一个非常复杂的计算机环境，有PC、工作站、MAC、服务器、大型机等等，而这些计算机可能运行不同的操作系统，有Unix、Dos、 Windows、MacOS等等，各种操作系统之间的文件交流，需要建立一个统一的文件传输协议，这就是所谓的FTP。虽然基于不同的操作系统有不同的 FTP应用程序，而所有这些应用程序都遵守同一种协议，这样用户就可以把自己的文件传送给别人，或者从其它的用户环境中获得文件。
与大 多数Internet服务一样，FTP也是一个客户机/服务器系统(C/S)。用户通过一个支持FTP协议的客户机程序，连接到远程主机上的FTP服务器 程序。用户通过客户机程序向服务器程序发出命令，服务器程序执行用户所发出的命令，并将执行的结果返回到客户机。比如说，用户发出一条命令，要求服务器向用户传送某一个文件，服务器会响应这条命令，将指定文件送至用户的机器上。客户机程序代表用户接收到这个文件，将其存放在用户指定目录中。FTP客户程序 有字符界面和图形界面两种。字符界面的FTP的命令复杂、繁多。图形界面的FTP客户程序，操作上要简洁方便的多。
在FTP的使用当 中，用户经常遇到两个概念："下载"(Download)和"上载"(Upload)。"下载"文件就是从远程主机拷贝文件至自己的计算机上;"上载"文 件就是将文件从自己的计算机中拷贝至远程主机上。用Internet语言来说，用户可通过客户机程序向(从)远程主机上载(下载)文件。
在ftp的使用过程中，必须首先登录，在远程主机上获得相应的权限以后，方可上传或下载文件。也就是说，要想同哪一台计算机传送文件，就必须具有哪一台计算机的适当授权。换言之，除非有用户ID和口令，否则便无法传送文件。这种情况违背了Internet的开放性，Internet上的FTP主机何止千 万，不可能要求每个用户在每一台主机上都拥有帐号。因此就衍生除了匿名FTP。[1]