骤雨打新荷
» 游客:  注册 | 登录 | 会员 | 社区银行 | 股票中心 | 帮助

 

作者:
标题: ftp命令大全及应用实例(含FTP文件传输协议) 上一主题 | 下一主题
txfzq
管理员




积分 33428
发帖 13147
注册 2005-5-26
状态 离线
#1  ftp命令大全及应用实例(含FTP文件传输协议)

FTP命令是Internet用户使用最频繁的命令之一,不论是在DOS还是UNIX操作系统下使用FTP,都会遇到大量的FTP内部命令,熟悉并灵活应用FTP的内部命令,可以大大方便使用者,对于现在拨号上网的用户,如果ISP提供了shell可以使用nohup,那么ftp将是你最省钱的上download方式,ftp的命令行格式为:ftp -v -d -i -n -g[主机名]  
-v 显示远程服务器的所有响应信息。
-d 使用调试方式。   
-n 限制ftp的自动登录,即不使用.netrc文件。
-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.cd remote-dir 进入远程主机目录。
  11.cdup进入远程主机目录的父目录。
  12.chmod modefile-name将远程主机文件file-name的存取方式设置为mode,如chmod 777 a.out。
  13.close中断与远程服务器的ftp会话(与open对应)。
  14.cr使用asscii方式传输文件时,将回车换行转换为回行。
  15.delete remote-file删除远程主机文件。
  16.debug[debug-value]设置调试方式,显示发送至远程主机的每条命令,如debup3,若 设为0,表示取消debug。
  17.dir[remote-dir][local-file]显示远程主机目录,并将结果存入local-file。
  18.disconnection同close。
  19.form format将文件传输方式设置为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的帮助信息,如help get。
  24.idle[seconds]将远程服务器的休眠计时器设为[seconds]秒。
  25.image设置二进制传输方式(同binary)
  26.lcd[dir]将本地工作目录切换至dir。
  27.ls[remote-dir][local-file]显示远程目录remote-dir,并存入本地local-file。
  28.macdef macro-name定义一个宏,遇到macdef下的空行时,宏定义结束。
   29.mdelete[remote-file]删除远程主机文件。
  30.mdir remote-files local-file与dir类似,但可指定多个远程文件,如mdir*.o.*. zipoutfile。
  31.mget remote-files传输多个远程文件。
  32.mkdir dir-name 在远程主机中建一目录。
  33.mls remote-file local-file同nlist,但可指定多个文件名。
  34.mode[mode-name]将文件传输方式设置为mode-name,缺省为stream方式。
  35.modtime file-name显示远程主机文件的最后修改时间。
  36.mput local-file将多个文件传输至远程主机。
  37.newerfile-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,该命令特别适用于远程主机为非U-NIX机的情况。
    40.ntrans[inchars[outchars]设置文件名字符的翻译机制,如ntrans1R,则文件名LLL将变为RRR。
  41.open host[port]建立指定ftp服务器连接,可指定连接端口。   
    42.passive进入被动传输方式。
  43.prompt设置多个文件传输时的交互提示。
  44.proxyftp-cmd在次要控制连接中,执行一条ftp命令,该命令允许连接两个ftp服务器,以在两个服务器间传输文件。第一条ftp命令必须为open,以首先建立两个服务器间的连接。
  45.put local-file[remote-file]将本地文件local-file传送至远程主机。
  46.pwd显示远程主机的当前工作目录。
  47.quit同bye,退出ftp会话。
  48.quote arg1,arg2……将参数逐字发至远程ftp服务器,如quote syst。
   49.recv remote-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.restart marker从指定的标志marker处,重新开始get或put,如restart 130。
  56.rmdir dir-name删除远程主机目录。
  57.runique设置文件名唯一性存储,若文件存在,则在原文件后加后缀。
  58.send local-file[remote-file]同put。
  59.sendport设置PORT命令的使用。
  60.site arg1,arg2……将参数作为SITE命令逐字发送至远程ftp主机。
  61.size file-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,如umask 3。
    71.useruser-name[password][account]向远程主机表明自己的身份,需要口令时,必须输入口令,如user anonymous my@email。
  72.verbose同命令行的-v参数,即设置详尽报告方式,ftp服务器的所有响应都将显示给用户,缺省为on.
  73.?[cmd]同help。

----------------------------------------------------------------------------------------------------------------

简单上传下载实例(/*....*/为注释):

先假设有一FTP服务器,FTP服务器:qint.ithot.net,用户名:username   密码:user1234。在本地电脑D:盘创建一个文件夹"qint"。将要上传的文件复制到d:\qint里。通过FTP命令将文件从本地上传,从服务器下载的步骤如下:

1.“开始”-“运行”-输入“FTP”

2.open qint.ithot.net       /*这一步可以与第一步合并,在“运行”里直接输入"ftp qint.ithot.net"。如果你的FTP服务器不是用的21默认端口,假如端口是2121,那么此步的命令应在后面空格加2121,即“open qint.ithot.net 2121”*/

3.username                    /*提示你输入用户名*/

4.user1234                     /*提示你输入密码,密码不回显,打完密码后回车即可。如果你的密码输入错误,将不会提示你重新输入,这时你要键入“user”命令,将会出现第三步,你可以重新输入用户名和密码。*/

5.dir                                /*你成功登陆后就可以用dir查看命令查看FTP服务器中的文件及目录,用ls命令只可以查看文件。*/

6.mkdir qint                     /*在FTP服务器上根目录下建立qint目录。*/

7.cd qint                          /*进入目录qint,用“cd 你的目录名”可以进入当前目录的下一级目录,这跟DOS一样。*/

8.bin                                /*采用二进制传输。如果你要上传下载,这一步很重要,不先执行这个命令,上传下载会很慢。*/

9.lcd d:\qint                     /*定位本地默认文件夹,在前面我事先在D:盘创建的。*/

10.!dir                             /*查看本地文件夹中的文件及目录*/

11.put i001.jpg               /*将当前目录(d:\qint)中的文件i001.jpg上传到FTP服务器默认目录。可以用"mput *.*"将所有文件上传到FTP服务器上。*/

12.get d123.jpg              /*将FTP服务器默认目录中的文件d123.jpg下载到当前目录下(d:\qint)。可以用"mget *.*"将所有文件下载到d:\qint*/

13.delete *.*                  /*删除目录qint中的所有文件。*/

14.cd ..                            /*返回至上一级目录,即根目录。返回上一级目录用“cd ..”要注意,中间有空格。返回根目录用“cd \”。*/

15.mrdir qint                    /*删除目录qint。删除目录,在此目录下不能有文件及目录,不然将无法删除。*/

16.bye                             /*退出FTP服务器*/

上传下载时特别要注意服务器及本地电脑的当前目录,文件是从哪里到哪里的问题。查看FTP服务器的当前目录命令为pwd,可以用cd命令定位服务器的目录。可以用lcd命令定位本地电脑的目录。以上实例应用到了采用FTP命令行方式上传下载的最常用命令,你还可以用命令“?”查看更多的命令。

==============================================
FTP:文件传输协议
  (FTP:File Transfer Protocol)

  文件传输协议(FTP)使得主机间可以共享文件。 FTP 使用 TCP 生成一个虚拟连接用于控制信息,然后再生成一个单独的 TCP 连接用于数据传输。控制连接使用类似 TELNET 协议在主机间交换命令和消息。

  FTP 的主要功能如下:

提供文件的共享(计算机程序 / 数据);
支持间接使用远程计算机;
使用户不因各类主机文件存储器系统的差异而受影响;
可靠且有效的传输数据。
  FTP ,尽管可以直接被终端用户使用,但其应用主要还是通过程序实现。

  FTP 控制帧即指 TELNET 交换信息,包含 TELNET 命令和选项。然而,大多数 FTP 控制帧是简单的 ASCII 文本,可以分为 FTP 命令或 FTP 消息。 FTP 消息是对 FTP 命令的响应,它由带有解释文本的应答代码构成。


协议结构

命令 描述
ABOR 中断数据连接程序
ACCT <account> 系统特权帐号
ALLO <bytes>  为服务器上的文件存储器分配字节
APPE <filename> 添加文件到服务器同名文件
CDUP <dir path> 改变服务器上的父目录
CWD <dir path> 改变服务器上的工作目录
DELE <filename> 删除服务器上的指定文件
HELP <command> 返回指定命令信息
LIST <name> 如果是文件名列出文件信息,如果是目录则列出文件列表
MODE <mode> 传输模式(S=流模式,B=块模式,C=压缩模式)
MKD <directory> 在服务器上建立指定目录
NLST <directory> 列出指定目录内容
NOOP 无动作,除了来自服务器上的承认
PASS <password> 系统登录密码
PASV 请求服务器等待数据连接
PORT <address> IP 地址和两字节的端口 ID
PWD 显示当前工作目录
QUIT 从 FTP 服务器上退出登录
REIN 重新初始化登录状态连接
REST <offset> 由特定偏移量重启文件传递
RETR <filename> 从服务器上找回(复制)文件
RMD <directory> 在服务器上删除指定目录
RNFR <old path> 对旧路径重命名
RNTO <new path> 对新路径重命名
SITE <params> 由服务器提供的站点特殊参数
SMNT <pathname> 挂载指定文件结构
STAT <directory> 在当前程序或目录上返回信息
STOR <filename> 储存(复制)文件到服务器上
STOU <filename> 储存文件到服务器名称上
STRU <type> 数据结构(F=文件,R=记录,P=页面)
SYST 返回服务器使用的操作系统
TYPE <data type> 数据类型(A=ASCII,E=EBCDIC,I=binary)
USER <username>> 系统登录的用户名

标准 FTP 信息如下:

响应代码 解释说明
110 新文件指示器上的重启标记
120 服务器准备就绪的时间(分钟数)
125 打开数据连接,开始传输
150 打开连接
200 成功
202 命令没有执行
211 系统状态回复
212 目录状态回复
213 文件状态回复
214 帮助信息回复
215 系统类型回复
220 服务就绪
221 退出网络
225 打开数据连接
226 结束数据连接
227 进入被动模式(IP 地址、ID 端口)
230 登录因特网
250 文件行为完成
257 路径名建立
331 要求密码
332 要求帐号
350 文件行为暂停
421 服务关闭
425 无法打开数据连接
426 结束连接
450 文件不可用
451 遇到本地错误
452 磁盘空间不足
500 无效命令
501 错误参数
502 命令没有执行
503 错误指令序列
504 无效命令参数
530 未登录网络
532 存储文件需要帐号
550 文件不可用
551 不知道的页类型
552 超过存储分配
553 文件名不允许




2005-11-7 21:15
查看资料  发短消息   编辑帖子  引用回复


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转:  



[ 联系我们 - 骤雨打新荷 ]

Powered by Discuz! 2.5 © 2001-2005 Comsenz Technology Ltd.