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]设置调试方式,显示发送至远程主机的每条命令,如debup 3,若 设为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,则文件名LL L将变为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。
doffinee 回复于:2003-04-29 16:04:41 |
其实如果简单的后台下载,直接用wget -b简单多了。不光是ftp、还可以是http的呢--我经常用wget 拉ISO。。。 |
keigopan 回复于:2003-04-28 16:14:08 |
那么如何应用这些命令提高效率呢?下面我举一个例子,如何利用fttp进行后台下载,假设你的ISP给你提供了shell并且可以用nohup,你想由fttp.download.com/pub/internet/下载一个30M的程序aaa.zip具体步骤如下: 1.用notepad做一个文件如aaa1内容如下 open ftp.dwonload.com user anonymous zyz@cenpok.net cd /pub/internet/ i get aaa.zip close bye 2.拨号登录到你的ISP上。用telnet 或netterm登录到shell,一般都在你的home 子目录里bbs~/ 3.用fttp上传aaa1到ISP服务器你的子目录。 4. 执行nohup fttp -invd aaa2& 这样这个进程就被放在ISP服务器的后台进行了,如果你想知道情况如何,可以more aaa2就可以知道情况如何了。这时你可以断线了或干点别的,估计时间到了(time约=30M/(33.6K/9)s)拨号上去,more aaa2如果显示成功下载aaa.zip就表示aaa.zip已经被下载到ISP的服务器上了,你再由ISP的服务器拉回来就相当与点对点了,记得下载完成后del掉你的文件(aaa.zip),免得浪费ISP资源,它会关掉shell的。 |
answer 回复于:2003-04-28 16:22:51 |
今天,有上了一课
好好学习~~~ |
keigopan 回复于:2003-04-28 16:24:59 |
偶是边看便学,边学边贴 |
answer 回复于:2003-04-28 16:25:15 |
还有没有,等你一起写完了~~~ |
keigopan 回复于:2003-04-28 16:27:55 |
偶还在学呢,还有我就在这篇续下去吧 |
muzx 回复于:2003-04-28 16:28:47 |
我等着! |
keigopan 回复于:2003-04-28 16:31:12 |
为了方便使用命令,现列出具体步骤如下:
(假定用户名为anonymous,密码为12345) c:\homepage>ftp www.wxgb.com Connected to www.wxgb.com 220 wuxi_gbserver1 Microsoft FTP Service (Version 4.0). User(www.wxgb.comnone)):anonymous <----此处改为你的FTP帐号名 Password: <---- 此处输入你的密码 如果用户和密码都正确的话将会出现下面的提示: 230-WELCOM WUXI CHINAGBN 230-~!~ 230- __________________ 230-| | 230-|__________________| 230 User anonymous logged in. ftp> <----这时你已经成功地连上了服务器 现在就可以开始下传文件了! ftp>bin <--------设置为二进制传输 ftp>mget *.* <------------得到主机上的多个文件(get filename为得到一个文件! mget file1?y <------------此处输入y mget file2?y ftp>bye <--------- 退出,当文件下传完时,就可以在本地硬盘上修改! 当修改完成后要上传文件时 连上主机,输入密码同上! ftp>bin ftp>mput *.*<------------上传多个文件到主机(ftp>put filename 上传一个文件到主机) mput file1?y <------------此处输入y mput file2?y ftp>bye <-----------上传完毕,退出FTP操作! |
keigopan 回复于:2003-04-28 16:58:05 |
非交互方式文件传输
FTP命令可以交互方式使用,也可以非交互方式使用。交互方式的使用较简单,命令执行时系统会逐步提示,非交互方式的实现虽然复杂,但大大方便使用者,因为FTP会自动完成所有的操作。我们在使用FTP命令时,为了操作方便,往往会按非交互方式使用,下面就介绍在SCOUNIX下FTP实现非交互方式的处理。 在UNIX系统下,使用RCP命令可以实现远程文件传输,但双方都必须为同一种系统,如果远程为其它系统,则RCP就无能为力了。使用FTP命令不但可以实现非交互方式传输方件,而且在双方使用不同系统时也能使用。UNIX下的FTP命令的使用与WindowsNT有所区别,通过UNIX的帮助系统可以知道,FTP命令格式为: ftp[-v][-d][-i][-n][-t][-g][host] 从命令格式中可以看出,其命令参数基本和在WindowsNT系统下差不多,但是没有[-s:FILENAME]参数,也就是说,不能通过编辑一任意文本文件来实现非交互方式传输文件,不过值得高兴的是,ftp命令在执行时会去寻找一文件名为.netrc的文件,如果此文件存在并且其中有FTP命令行中指定的主机名,则会执行.netrc文件中命令行。.netrc文件中放有远程主机名、注册用户名、用户口令和定义的宏,其格式如下: machine主机名 login用户名 password用户口令 macdefinit(定义宏) binary hash get远程主机文件名本地文件名 bell close bye 在命令提示符下运行“ftp主机名”命令即可自动实现文件的传输。另外在UNIX下使用FTP命令应注意下面的事项。 1、在.netrc文件中,如果使用password命令,其用户口令在文件中没有被加密,所以必须对.netrc文件设置权限,可以在命令提示符下使用“chmod0600.netrc”命令设置权限,即只有其文件主有读写权限,而其组成员及其它用户均不可有任何权限,否则password命令无效,导致注册过程中断。 2、在.netrc文件中,如果使用macdefinit命令,则在其下一行可以输入FTP命令,系统会自动执行这些命令且直到遇到一空行,也就是说在文件尾必须有至少一行空行,否则会出现错误信息“Macro definition missing null line terminator”。 3、如果在UNIX系统下使用超级用户注册,则.netrc文件必须放在根目录下,如果使用一般用户注册,则.netrc文件必须放在“/usr/用户名”目录下。 4、在UNIX系统下所有命令均为小写,包括FTP命令。 |
keigopan 回复于:2003-04-28 17:09:13 |
1 创建一个组,用groupadd命令,一般可以就用ftp组,或者任何组名.
-----相关命令: groupadd ftpuser -----相关文件: /etc/group -----相关帮助: man groupadd 2 创建一个用户,如testuser,建立用户可用adduser命令.如果你已在先前建立了testuser这个用户,可以直接编辑/etc/passwd文件,把这个用户加入到 ftpuser这个组中. -----相关命令: adduser testuser -g ftpuser -----相关文件: /etc/passwd -----相关帮助: man adduser 3 修改/etc/ftpaccess文件,加入guestgroup的定义: guestgroup ftpuser 我是这样改的,加的是最后5行 compress yes all tar yes all chmod no anonymous delete no anonymous overwrite no anonymous rename no anonymous chmod yes guest delete yes guest overwrite yes guest rename yes guest guestgroup ftpuser 除了加 guestgroup ftpuser 这行,其他4行也要加上,否则用户登陆后,虽然 可以达到用户不能返回上级目录的目的,但是却只能上传,不能覆盖、删除文件! -----相关命令: vi /etc/ftpaccess -----相关文件: /etc/ftpaccess -----相关帮助: man ftpaccess,man chroot 4 向这个用户的根目录下拷贝必要的文件,拷贝ftp server自带的目录,把 /home/ftp/下的bin,lib两个目录拷贝到这个用户的根目录下,因为一些命令(主要是ls)需要Lib支持,否则不能列目录和文件. -----相关命令: cp -rf /home/ftp/lib /home/testuser;cp -rf /home/ftp/bin /home/testuse r 5 另外可别忘了关掉用户的telnet权,否则就白做了噢. 怎么不让用户telnet呢?很简单: 在/etc/shells里加一行/dev/null ,然后可以直接编辑/etc/passwd文件, 把用户的shell设置为/dev/null就可以了. -----相关命令: vi /etc/passwd 这一步可以在步骤2 创建一个用户时就先做好. -----相关命令: adduser testuser -g ftpuser -s /dev/null 小经验:只要把/home/ftp下的bin和lib目录cp到/etc/skel目录里,以后新建用户都会自动把bin和lib目录CP到用户目录里,当然你也可以加上 public_html目录和cgi-bin目录. 有的资料说建用户的时候把设置的目录为如下格式:/ftp/./incoming ,我在REDHAT6.0中未做此设置,使用正常,其他版本我未试过. (详见man ftpaccuss) 是不是繁了点,也许你你使用其他FTP软件能更简单些,如proftpd |
keigopan 回复于:2003-04-28 17:09:36 |
系统是FreeBSD2.2.7 用户名为:testuser 另外前提是你已经建了anonymous ftp server,这需要装系统时选择安装.
1 创建一个组,用/stand/sysinstall命令,在Configure的User Management 里可以加用户或组,这次我们建一个ftpuser,如果用户testuser还没有建立, 同样你可以用/stand/sysinstall命令建立,并且把他放入ftpuser组. -----相关命令: /stand/sysinstall -----相关文件: /etc/group 2 创建一个用户,如testuser,建立用户除/stand/sysinstall外,还有adduser 和pw命令.如果你已在先前建立了testuser这个用户, 则你需要用chsh命令来 把他把这个用户加入到ftpuser组,FreeBSD里直接编辑/etc/passwd文件是无效的. -----相关命令:/stand/sysinstall -----修改命令:chsh testuser -----相关文件:/etc/passwd, /etc/master.passwd -----相关帮助:man adduser, man pw 3 编辑一个/etc/ftpchroot文件,通常系统里可能没有这个文件,需要你新建,内容就一句,如下: @ftpuser 然后保存下来,ftpuser就是你需要chroot的组,你也可以加进其他组. -----相关命令:vi /etc/ftpchroot 4 向这个用户的根目录下拷贝必要的文件,拷贝ftp server自带的目录,把 /var/ftp/下的bin目录拷贝到这个用户的根目录下,否则不能列目录和文件. -----相关命令: cp -rf /var/ftp/bin /home/testuser 5 关掉用户的telnet权, 用命令:chsh testuser ,把用户的shell设置为 /sbin/nologin就可以了. 也可以象Redhat6.0里一样,在etc/shells里加一行/dev/null,把用户的shell设置为/dev/null,这一步可以在步骤2创建一个用户时就先做好. 小经验:把/var/ftp/bin目录cp到FreeBSD2.2.7的/usr/share/skel,以后就省事了.相关选项可在/etc/adduser.conf里修改. |
lsw 回复于:2003-04-28 18:58:43 |
不错呀 |
gqywf 回复于:2003-04-28 19:55:18 |
佩服,我第一次看见这么多ftp命令 |
htldm 回复于:2003-04-28 20:48:14 |
确实不错!keigopan朋友,向您提个建议,换个别的签名如何? |
dfangyang 回复于:2003-04-29 16:48:26 |
Good good study
Up up day. Thanks. |
angel518 回复于:2003-04-29 17:59:00 |
好,收了 |
延伸阅读
文章来源于领测软件测试网 https://www.ltesting.net/