FTP(File Transfer Protocol)是文件传输协议,通过它可以从计算机传输或传输到计算机文件。FTP命令可以交互方式使用,也可以非交互方式使用。交互方式的使用较简单,命令执行时系统会逐步提示,非交互方式的实现虽然复杂,但大大方便使用者,因为FTP会自动完成所有的操作。我们在使用FTP命令时,为了操作方便,往往会按非交互方式使用,下面笔者就介绍在SCO UNIX 3.0下FTP实现非交互方式的处理。
在UNIX系统下,使用RCP命令可以实现远程文件传输,但双方都必须为同一种系统,如果远程为其它系统,则RCP就无能为力了。使用FTP命令不但可以实现非交互方式传输方件,而且在双方使用不同系统时也能使用。UNIX下的FTP命令的使用与Windows NT有所区别,通过UNIX的帮助系统可以知道,FTP命令格式为:
ftp[-v][-d][-i][-n][-t][-g][host]
从命令格式中可以看出,其命令参数基本和在Windows NT系统下差不多,但是没有[-s:FILENAME]参数,也就是说,不能通过编辑一任意文本文件来实现非交互方式传输文件,不过值得高兴的是,ftp命令在执行时会去寻找一文件名为netrc的文件,如果此文件存在并且其中有FTP命令行中指定的主机名,则会执行netrc文件中命令行。netrc文件中放有远程主机名、注册用户名、用户口令和定义的宏,其格式如下:
machine主机名
login用户名
password用户口令
macdefinit(定义宏)
binary
hash
get远程主机文件名本地文件名
bell
close
bye
在命令提示符下运行"ftp主机名"命令即可自动实现文件的传输。另外在UNIX下使用FTP命令应注意下面的事项。
1、在.netrc文件中,如果使用password命令,其用户口令在文件中没有被加密,所以必须对.netrc文件设置权限,可以在命令提示符下使用"chmod 0600 .netrc"命令设置权限,即只有其文件主有读写权限,而其组成员及其它用户均不可有任何权限,否则password命令无效,导致注册过程中断。
2、在.netrc文件中,如果使用macdefinit命令,则在其下一行可以输入FTP命令,系统会自动执行这些命令且直到遇到一空行,也就是说在文件尾必须有至少一行空行,否则会出现错误信息"Macro definition missing null line terminator"。
3、如果在UNIX系统下使用超级用户注册,则.netrc文件必须放在根目录下,如果使用一般用户注册,则.netrc文件必须放在"/usr/用户名"目录下。
4、在UNIX系统下所有命令均为小写,包括FTP命令。