FTP协议命令基础讲解


在FTP使用的过程中,我们常会对它进行命令编辑,以便能够有效地管理这方面的使用。那么对于这个FTP协议命令如何来学习呢?我们第一步来了解一下这个协议的基本情况吧。那么首先要分析一下它的使用环境。

FTP协议的用途

在本地主机和远程主机之间传送文件。

FTP协议的语法

ftp [ -d] [ -g ] [ -i ] [ -n ] [ -v] [ -f ] [ -k realm] [-q[-C]][ HostName [ Port ] ]

FTP协议的描述

FTP协议命令使用“文件传送协议” (FTP) 在本地和远程主机或远程主机之间传送文件。

FTP协议允许在使用不同文件系统的主机之间进行数据传送。尽管协议在传送数据中提供了很高的灵活度,它仍然不会尝试保留特定于某个文件系统的文件属性如文件保护模式或修改时间)。而且,FTP协议为文件系统的整体结构做了少许假设,且不提供或不允许诸如循环地复制子目录这样的函数。

请注意:如果您正在系统之间传送文件,且需要保存文件属性或递归地复制子目录,请使用 rcp 命令。

FTP协议命令的发布子命令

您可以在 ftp> 提示符中输入子命令,执行类似这样的任务:列出远程目录、更改当前的本地和远程目录、在单一请求中传送多个文件、创建和除去目录,以及转义到本地 shell 执行 shell 命令。请参考子命令章节取得每个子命令的描述信息。

如果您执行 ftp 命令而不为远程主机指定 HostName 参数,ftp 命令会立即显示 ftp> 提示符,等待 ftp 子命令。要连接远程主机,请执行 open 子命令。 当 ftp 命令连接到远程主机时,ftp 命令在再次显示提示符 ftp> 之前会提示输入登录名和密码。如果远程主机中未定义登录名的密码,ftp 命令将不成功。

FTP协议命令解释器处理在 ftp> 提示符处输入的全部子命令),会提供大多数文件传送程序没有的性能,如:

◆对 ftp 子命令处理文件名参数

◆将一组子命令集中成一个单一的子命令宏

◆从 $HOME/.netrc 文件中装入宏

这些性能会帮助您简化重复的任务,并允许您在 unattended 方式使用 ftp 命令。

命令解释器将按照下列规则处理文件名参数:

◆如果为此参数指定了 -连字符),则标准输入 (stdin) 将用于读取操作,而标准输出用于写入操作。

◆如果未应用前面的检查,且文件名扩展已启用请参考 -g 标志或 glob 子命令),则解释器将根据 C shell 的规则扩展文件名。启用了文件名匹配替换以及在期待单一文件名的子命令中使用了模式匹配字符时,结果可能与期待的不一样。

例如,append 和 put 子命令将拓展文件名,然后仅使用所生成第一个文件名。其它 ftp 子命令,如 cd、delete, get、mkdir、rename 和 rmdir 不会执行文件名拓展,并从字面上接受模式匹配字符。

◆对于 get、put、mget 和 mput 子命令,解释器有能力在不同的本地和远程文件名语法样式之间进行翻译和映射请参考 case、ntrans 和 nmap 子命令),并且在本地文件名不是唯一的情况下有修改它的能力请参考 runique 子命令)。另外,如果远程文件名不是唯一的,则 ftp 命令可将指令发送到远程 ftpd 服务器,以修改远程的文件名请参考 sunique 子命令)。

◆使用双引号 (" ") 指定包含空字符的参数。

请注意:FTP协议命令解释器不支持管道。也无需支持所有多字节字符文件名。

要在互动地运行的时候结束 ftp 会话,请使用 quit 或 bye 子命令或 ftp> 提示符处的End of File (Ctrl-D) 按键顺序。要在文件传送未完成之前结束它,请按中断按键顺序。其缺省“中断键”序列是 Ctrl-C。stty 指令能用于重新定义该键系列。

ftp 命令在正常情况下会立即暂停正在发送从本地主机到远端主机)的传输。ftp 命令通过将 FTPABOR 指令发送到远程 FTP服务器,来暂停正在接收的传输从远程主机到本地主机),并废弃所有传入的文件传送包直到远程服务器停止发送它们为止)。如果远程服务器不支持 ABOR 指令,在远程服务器未发送所有请求的文件之前,ftp 命令不会显示 ftp> 提示符。另外,如果远程服务器执行未期望的操作时,可能需要结束本地 ftp 进程。

相关内容

    暂无相关文章