Skip to main content

5.3 命令 (Commands)

命令是通过控制连接传输的Telnet字符串, 如FTP命令部分中所述。命令功能和语义在访问控制命令、传输参数命令、FTP服务命令和其他命令部分中描述。此处指定命令语法。

命令以命令代码开头, 后跟参数字段。命令代码是四个或更少的字母字符。大写和小写字母字符应被视为相同。因此, 以下任何一个都可以表示检索命令:

RETR    Retr    retr    ReTr    rETr

这也适用于表示参数值的任何符号, 例如A或a表示ASCII TYPE。命令代码和参数字段由一个或多个空格分隔。

参数字段由可变长度字符串组成, 以字符序列<CRLF> (回车, 换行) 结束, 用于NVT-ASCII表示; 对于其他协商语言, 可能使用不同的行尾字符。应该注意的是, 服务器在接收到行尾代码之前不采取任何操作。

语法在下面以NVT-ASCII指定。参数字段中的所有字符都是ASCII字符, 包括任何ASCII表示的十进制整数。方括号表示可选参数字段。如果未采用该选项, 则暗示适当的默认值。


5.3.1 FTP命令 (FTP COMMANDS)

以下是FTP命令:

USER <SP> <username> <CRLF>
PASS <SP> <password> <CRLF>
ACCT <SP> <account-information> <CRLF>
CWD <SP> <pathname> <CRLF>
CDUP <CRLF>
SMNT <SP> <pathname> <CRLF>
QUIT <CRLF>
REIN <CRLF>
PORT <SP> <host-port> <CRLF>
PASV <CRLF>
TYPE <SP> <type-code> <CRLF>
STRU <SP> <structure-code> <CRLF>
MODE <SP> <mode-code> <CRLF>
RETR <SP> <pathname> <CRLF>
STOR <SP> <pathname> <CRLF>
STOU <CRLF>
APPE <SP> <pathname> <CRLF>
ALLO <SP> <decimal-integer>
[<SP> R <SP> <decimal-integer>] <CRLF>
REST <SP> <marker> <CRLF>
RNFR <SP> <pathname> <CRLF>
RNTO <SP> <pathname> <CRLF>
ABOR <CRLF>
DELE <SP> <pathname> <CRLF>
RMD <SP> <pathname> <CRLF>
MKD <SP> <pathname> <CRLF>
PWD <CRLF>
LIST [<SP> <pathname>] <CRLF>
NLST [<SP> <pathname>] <CRLF>
SITE <SP> <string> <CRLF>
SYST <CRLF>
STAT [<SP> <pathname>] <CRLF>
HELP [<SP> <string>] <CRLF>
NOOP <CRLF>

5.3.2 FTP命令参数 (FTP COMMAND ARGUMENTS)

上述参数字段的语法 (在适用的情况下使用BNF表示法) 为:

<username> ::= <string>
<password> ::= <string>
<account-information> ::= <string>
<string> ::= <char> | <char><string>
<char> ::= any of the 128 ASCII characters except <CR> and <LF>
(128个ASCII字符中的任何一个, 除了<CR>和<LF>)
<marker> ::= <pr-string>
<pr-string> ::= <pr-char> | <pr-char><pr-string>
<pr-char> ::= printable characters, any ASCII code 33 through 126
(可打印字符, ASCII代码33到126)
<byte-size> ::= <number>
<host-port> ::= <host-number>,<port-number>
<host-number> ::= <number>,<number>,<number>,<number>
<port-number> ::= <number>,<number>
<number> ::= any decimal integer 1 through 255
(任何十进制整数1到255)
<form-code> ::= N | T | C
<type-code> ::= A [<sp> <form-code>]
| E [<sp> <form-code>]
| I
| L <sp> <byte-size>
<structure-code> ::= F | R | P
<mode-code> ::= S | B | C
<pathname> ::= <string>
<decimal-integer> ::= any decimal integer (任何十进制整数)