ftp 命令行使用精萃
ftp命令是internet用户使用最频繁的命令之一,不论是在dos还是unix操作系统下使用ftp,都会遇到大量的ftp内部命令。熟悉并灵活应用ftp的内部命令,可以大大方便使用者,并收到事半功倍之效。
ftp的命令行格式为:ftp-v-d-i-n-g[主机名],其中
-v显示远程服务器的所有响应信息;
-i限制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.chmodmodefile-name:将远程主机文件file-name的存取方式设置为mode,如:chmod777a.out。
13.close:中断与远程服务器的ftp会话(与open对应)。
14.cr:使用asscii方式传输文件时,将回车换行转换为回行。
15.deleteremote-file:删除远程主机文件。
16.debug[debug-value]:设置调试方式,显示发送至远程主机的每条命令,如:debup3,若设为0,表示取消debug。
17.dir[remote-dir][local-file]:显示远程主机目录,并将结果存入本地文件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.mdirremote-fileslocal-file:与dir类似,但可指定多个远程文件,如:mdir*.o.*.zipoutfile。
31.mgetremote-files:传输多个远程文件。
32.mkdirdir-name:在远程主机中建一目录。
33.mlsremote-filelocal-file:同nlist,但可指定多个文件名。
34.mode[modename]:将文件传输方式设置为modename,缺省为stream方式。
35.modtimefile-name:显示远程主机文件的最后修改时间。
36.mputlocal-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。该命令特别适用于远程主机为非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服务器,如:quotesyst。
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,如:restart130。
56.rmdirdir-name:删除远程主机目录。
57.runique:设置文件名唯一性存储。
58.sendlocal-file[remote-file]:同put。
59.sendport:设置port命令的使用。
60.sitearg1,arg2...:将参数作为site命令逐字发送至远程ftp主机。
61.sizefile-name:显示远程主机文件大小,如:siteidle7200。
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]:向远程主机表明自己的身份,需要口令时,必须输入口令,如:useranonymousmy@email。
72.verbose:同命令行的-v参数,即设置详尽报告方式,ftp服务器的所有响应都将显示给用户,缺省为on。
73.?[cmd]:同help。
----------------------------PASV模式的操作方法
注:此方法只有在无法登录和下载的情况下才可使用!!!
取消 pasv 模式的方法
有许多朋友的 FTP 服务器是不支持 PASV 模式的,登录时要取 消 PASV 模式才行。现将几种 FTP 下载工具的取消方法公布如 下:
1。把 flashget 的 pasv 模式关掉的方法
点菜单上的“工具”->“选项”->“代理服务器”->
“直接连接”->编辑->把“ pasv 模式”前的勾勾去掉,
一路确定回来。
2。把 Cutftp 的 pasv 模式关掉的方法
点菜单上的“文件”->“站点管理”->在“站点管理器”窗口
>“新建站点”->填上“域名”->“编辑”->“常规”->
把“使用 pasv 模式”前的勾勾去掉。
3。把 FlashFXP 的 pasv 模式关掉的方法
点菜单上的“站点”->“站点管理器”->站点管理器窗口->
“新建站点”->填上“域名”->“选项”->把“使用被动模 式”前的勾勾去掉->“应用” 即可。
ftp工具介绍:
FlashFXP(稳定第一,简易好用)或FTPrush(功能多多,使用方便)
笔者每天都要从FTP服务器上下载文件。所谓“工欲善其事,必先利其器”,笔者选择的是FTP客户端新秀――FTPRush。FTPRush的前身是UltraFXP,它与传统的FlashFXP、CuteFTP相比,拥有更强大的功能,比如多窗口操作、更强大的脚本命令支持、更方便的界面定制等等。下面是笔者使用FTPRush几个月以来总结的一些“超短”技巧,如果你掌握了它们,相信你的FTP操作会玩得更酷!
1.在FTPRush的“本地窗口”中,如果你直接选中某文件并点击右键菜单,出现的是与FTPRush相关的菜单选择,如果你按住Shift的同时再单击右键,则出现的是资源管理器的右键菜单,这对于我们在FTPRush中进行文件管理非常方便。
2. 我们在升级FTPRush版本的时候最好首先备份一下旧版FTPRush安装目录下的RushSite.xml文件,这里保存的是你的站点管理器中所有FTP站点,因为从FTPRush v1.0 RC5开始,如果你使用新版的安装包覆盖安装,RushSite.xml将被覆盖。
3. 连接到FTP后,选中要下载的文件或者目录,直接按下“Ctrl+Q”热键即可将该文件或目录添加到队列中,而无需单击右键,选择“添加选择的文件到队列”。
4. 选中要下载的文件,并在“本地窗口”中选择下载文件存放的目录,按下“Ctrl+T”即可开始文件传输
5. FTPRush中查找文件支持通配符“*”和“?”,比如我们要查找的目录名为“大唐双龙传”,那么我们可以输入“*大唐*”或者直接输入“大唐”即可。查找时只需按下“Ctrl+F”热键,并输入关键词即可。
6. 搜索完毕后要想退回到原目录,可以点击“上一层目录”按钮,但这样我们需要重新向服务器发起请求,其实只需要再次按下“Ctrl+F”,并直接回车即可,这时候读取的文件是保留在本地缓存中的,速度要快很多。
7. 在站点管理器中,按住Shift键双击某个站点,会弹出FTP测试窗口,而按下Ctrl键双击则会直接连接该站点。
8.不管是本地文件还是FTP服务器上的文件,当我们选中它们之后,按下空格键,该文件的文件名会加粗显示,这对于我们在文件较多的目录中快速找到它们很有帮助。
9.老版本的UltraFXP站点文件,只需要将其改名为“RushSite.xml”并覆盖到FTPRush的安装目录即可导入站点。
10.选择“帮助→关于FTPRush”,在打开的窗口中点击“Rush every byte”,这里有一个彩蛋,上面会滚动显示FTPRush开发人员的名单,很有意思。
11.可以直接按“Ctrl+1、Ctrl+2……”快速切换到第1、2……个站台窗口,也可以直接按“Ctrl+Tab”在多站台之间切换。
12.在站点管理器中,双击某个站点打开其属性窗口,单击“密码”栏后面的“...”按钮可以直接查看密码明文,如图2所示。
13.有时候为了查看某个FTP中拥有的所有文件或者某个目录中的文件列表,我们可以选择“站台→输出FTP目录树列表”菜单,在弹出的窗口中输入目录深度,如果需要输出目录和文件大小则选择“输出目录和文件大小”,最后单击“确定”按钮,稍等片刻即可看到输出效果
14.在站台日志、传输日志、系统日志中选中任意一部分日志记录,该部分记录会自动被粘贴到剪贴板中。
15.双击本地文件窗口中的SFV或者MD5校验文件,FTPRush会自动进行文件校验。
16.选择“工具→热键管理器”菜单可以在这里对所有热键进行重新分配,在“工具→布局”菜单中可以对工具栏、菜单、窗口做重新设计,这是FTPRush所独有的功能,设计出来的布局可以将其保存起来与朋友分享.
ftp常见错误及解决方法
首先,出现错误不要急于重试,重试也没用处,只会让网站封你的ip地址。要根据提示,找出原因,选择正确的方法,解决问题。
其次,确认网络可以使用,如果本身连不上internet,一切免谈。
421错误
原因:同时连接该ftp的人数过多,一般ftp网站都有同时登陆人数的上限,超过该上限就会出现421错误。
解决办法:在ftp软件中,把重试次数改为999,重试间隔改为60秒,一般几分钟到半小时就会连上,要注
意的是,有些网站有连接时间的设定,连上后,超过一定时间不下载,就会自动断开,所以要经常去看看有没有连上。
530“not login"
原因:用户名或密码错误,有些网站每隔一段时间就要修改密码,导致原来的密码无法登陆。
解决方法:去发布该ftp密码的论坛,或该ftp登陆时的欢迎词中,获得正确的密码,然后登陆。
“连接超时,无法连接”错误
原因1:该ftp暂时关机,特别是一些个人ftp容易出现该错误。
解决方法:去发布该ftp论坛找开机时间,在开机时间范围内连接。如果未标明时间,则等几个小时或几天后再连接该ftp,也可以参照421错误的解决方法。
原因2:ftp永远关闭
解决方法:无药可救,找其他ftp吧。
“无法解析域名”
原因1:该ftp的域名输入错误,如漏打一个字母,使用了全角标点等。
解决方法:去发布该ftp论坛找到正确的域名输入。
原因2:本地的域名解析服务器坏了(长城宽带等fttb容易出现)
解决方法:等本地网络修好即可使用,也可以直接输入ftp的ip地址。
原因3:该ftp修改了域名。
解决方法:去发布该ftp论坛找正确的域名。
原因4:个人的ftp设置错误。
解决方法:通知开站的朋友修正。
原因5:ftp永远关闭
解决方法:无药可救,找其他ftp吧。
“only one …… ip address……”
原因1:使用多线程下载,超过该ftp允许的线程。
解决方法:看看自己是不是已经与该ftp有了连接,如果有了就不要再开新的连接。如果没用看原因2。
原因2:局域网内有其他人连接了该ftp(长城宽带等fttb容易出现)
解决方法:等几个小时,别人断开后,再连接该ftp。
“连接拒绝”
原因:恭喜你,你的ip已经被该ftp封了。
解决方法:等一段时间(由该ftp设定,半小时到一天不等),才能连接该ftp。如果是随机获得ip地址的话,也可以断开网络,重播上网,前提是ip前三档不能完全一样。
“only client……”
原因:一般是用flashfxp连接非21端口的ftp站点。
解决方法:打开被动模式,我专门开了一贴讲述。
连接后空目录
原因1:与上面的错误相似。
解决方法:打开被动模式。
原因2:网站不支持list命令
解决方法:去该ftp的论坛,找到具体的电影链接,用flashget下载,一般论坛的置顶贴中有详细的下载方法。
FTP文件列表(出现中文乱码)怎么解决?
如果用户打开FTP目录出现中文乱码的情况。主要与你的语言编码有关。
大家可做如下处理即可正常显示中文。
如果你是用FTPrush的话,步骤:
在FTPrush软件界面中的:“站点管理窗口(F3)”找到你相应的FTP站点,再右键,
“站点属性”->“目录列表方式”->“站点目录的字符集”,选Chinese Simplified.
简体中文即可。或选相应的字符集。
FTP信息代码全解(新手必读)
重新启动标志回应。这种情况下,信息是精确的并且不用特别的处理;可以这样看:标记 yyyy = mmm 中 yyyy是 用户进程数据流标记,mmmm是服务器端相应的标记(注意在标记和等号间的空格)
-----------------------------------
120 Service ready in nnn minutes.
服务在NNN时间内可用
-----------------------------------
125 Data connection already open; transfer starting.
数据连接已经打开,开始传送数据.
-----------------------------------
150 File status okay; about to open data connection.
文件状态正确,正在打开数据连接.
-----------------------------------
200 Command okay.
命令执行正常结束.
-----------------------------------
202 Command not implemented, superfluous at this site.
命令未被执行,此站点不支持此命令.
-----------------------------------
211 System status, or system help reply.
系统状态或系统帮助信息回应.
-----------------------------------
212 Directory status.
目录状态信息.
-----------------------------------
213 File status.
文件状态信息.
-----------------------------------
214 Help message.On how to use the server or the meaning of a particular non-standard command. This reply is useful only to the human user. 帮助信息。关于如何使用本服务器或特殊的非标准命令。此回复只对人有用。
-----------------------------------
215 NAME system type. Where NAME is an official system name from the list in the Assigned Numbers document.
NAME系统类型。
-----------------------------------
220 Service ready for new user.
新连接的用户的服务已就绪
-----------------------------------
221 Service closing control connection.
控制连接关闭
-----------------------------------
225 Data connection open; no transfer in progress.
数据连接已打开,没有进行中的数据传送
-----------------------------------
226 Closing data connection. Requested file action successful (for example, file transfer or file abort).
正在关闭数据连接。请求文件动作成功结束(例如,文件传送或终止)
-----------------------------------
227 Entering Passive Mode (h1,h2,h3,h4,p1,p2).
进入被动模式
-----------------------------------
230 User logged in, proceed. Logged out if appropriate.
用户已登入。 如果不需要可以登出。
-----------------------------------
250 Requested file action okay, completed.
被请求文件操作成功完成
-----------------------------------
257 "PATHNAME" created.
路径已建立
-----------------------------------
331 User name okay, need password.
用户名存在,需要输入密码
-----------------------------------
332 Need account for login.
需要登陆的账户
-----------------------------------
350 Requested file action pending further information
对被请求文件的操作需要进一步更多的信息
-----------------------------------
421 Service not available, closing control connection.This may be a reply to any command if the service knows it must shut down.
服务不可用,控制连接关闭。这可能是对任何命令的回应,如果服务认为它必须关闭
-----------------------------------
425 Can't open data connection.
打开数据连接失败
-----------------------------------
426 Connection closed; transfer aborted.
连接关闭,传送中止。
-----------------------------------
450 Requested file action not taken.
对被请求文件的操作未被执行
-----------------------------------
451 Requested action aborted. Local error in processing.
请求的操作中止。处理中发生本地错误。
-----------------------------------
452 Requested action not taken. Insufficient storage space in system.File unavailable (e.g., file busy).
请求的操作没有被执行。 系统存储空间不足。 文件不可用
-----------------------------------
500 Syntax error, command unrecognized. This may include errors such as command line too long.
语法错误,不可识别的命令。 这可能是命令行过长。
-----------------------------------
501 Syntax error in parameters or arguments.
参数错误导致的语法错误
-----------------------------------
502 Command not implemented.
命令未被执行
-----------------------------------
503 Bad sequence of commands.
命令的次序错误。
-----------------------------------
504 Command not implemented for that parameter.
由于参数错误,命令未被执行
-----------------------------------
530 Not logged in.
没有登录
-----------------------------------
532 Need account for storing files.
存储文件需要账户信息
-----------------------------------
550 Requested action not taken. File unavailable (e.g., file not found, no access).
请求操作未被执行,文件不可用。
-----------------------------------
551 Requested action aborted. Page type unknown.
请求操作中止,页面类型未知
-----------------------------------
552 Requested file action aborted. Exceeded storage allocation (for current directory or dataset).
对请求文件的操作中止。 超出存储分配
-----------------------------------
553 Requested action not taken. File name not allowed
请求操作未被执行。 文件名不允许
-----------------------------------
-----------------------------------
这种错误跟http协议类似,大致是:
2开头--成功
3开头--权限问题
4开头--文件问题
5开头--服务器问题
对大家最有用的:
421:一般出现在连接数多,需稍后在接;
530:密码错误;
550:目录或文件已经被删除。
SFV简介
在下载Warez时经常可以看到一些.sfv的文件,到底这种文件是这么回事呢,这里有比较详细的说明:
sfv是simple file verification(简单文件校验)的简写,它采用的是crc32的校验算法。
crc32校验产生32bit(8位十六进制数)校验值,所以一般大家看见的文件“sfv值”是一个8位的16进制数。由于crc32产生校验值时源数据块的每一个bit位都参与了计算,所以数据块中即使一位bit 发生变化,也会得到不同的crc32值(但对于两个完全不相干的文件是有可能有相同校验值的,因为校验值的取值空间有限――2^32,而现实中文件数量一定是大大超过这个值了)。
关于crc32校验的具体算法,大致的过程是(没兴趣的可以忽略这一段):采用多项式除法,将一个数据块(不论大小)中的每一位(bit)作为各项系数来生成一个很长的多项式(例如对一个16进制的数F0h,可以生成多项式1*X^7 + 1*X^6 + 1*X^5 + 1* X^4 + 0*X^3 + 0*X^2 + 0*X^1 + 0*X^0,化简一下,就变成X^7 + X^6 + X^5 + X^4),然后将生成的多项式除以如下被称为“发生器多项式”的特殊多项式(X^32+X^26+X^23+X^22+X^16+X^12+X^11+X^10+X^8+X^7+X^5+X^4+X^2+X^1+1),取结果的余数部分,就是我们需要的crc32(也就是sfv)值了。至于除法的具体算法,有硬件实现也有很多软件实现,这里就不再赘述。
md5是一个消息摘要算法(也叫单向散列函数)的名称。它通过一定的算法(任何有关应用密码学的书里都有具体的算法表述)根据源数据的每一位bit最终产生一个128bit(32位十六进制数)的校验值。由于长度达到一定的要求,所以在密码学领域中有一定应用(用它来校验文件理论上讲由于有更大的取值空间而肯定比sfv更安全,但实际上似乎sfv就够用了)。