zoukankan      html  css  js  c++  java
  • Linux文件传输FTP详解

    ftp命令用来设置文件系统相关功能。ftp服务器在网上较为常见,Linux ftp命令的功能是用命令的方式来控制在本地机和远程机之间传送文件,这里详细介绍Linux ftp命令的一些经常使用的命令,相信掌握了这些使用Linux进行ftp操作将会非常容易。

    语法

    ftp(选项)(参数)

    选项

    -d:详细显示指令执行过程,便于排错或分析程序执行的情况;
    -i:关闭互动模式,不询问任何问题;
    -g:关闭本地主机文件名称支持特殊字符的扩充特性;
    -n:不使用自动登录;
    -v:显示指令执行过程。

    参数

    主机:指定要连接的FTP服务器的主机名或ip地址。

    实例

    FTP>ascii: 设定以ASCII方式传送文件(缺省值)
    FTP>bell: 每完成一次文件传送,报警提示.
    FTP>binary: 设定以二进制方式传送文件.
    FTP>bye: 终止主机FTP进程,并退出FTP管理方式.
    FTP>case: 当为ON时,用MGET命令拷贝的文件名到本地机器中,全部转换为小写字母.
    FTP>cd: 同UNIX的CD命令.
    FTP>cdup: 返回上一级目录.
    FTP>chmod: 改变远端主机的文件权限.
    FTP>close: 终止远端的FTP进程,返回到FTP命令状态, 所有的宏定义都被删除.
    FTP>delete: 删除远端主机中的文件.
    FTP>dir [remote-directory] [local-file] 列出当前远端主机目录中的文件.如果有本地文件,就将结果写至本地文件.
    FTP>get [remote-file] [local-file] 从远端主机中传送至本地主机中.
    FTP>help [command] 输出命令的解释.
    FTP>lcd: 改变当前本地主机的工作目录,如果缺省,就转到当前用户的HOME目录.
    FTP>ls [remote-directory] [local-file] 同DIR.
    FTP>macdef: 定义宏命令.
    FTP>mdelete [remote-files] 删除一批文件.
    FTP>mget [remote-files] 从远端主机接收一批文件至本地主机.
    FTP>mkdir directory-name 在远端主机中建立目录.
    FTP>mput local-files 将本地主机中一批文件传送至远端主机.
    FTP>open host [port] 重新建立一个新的连接.
    FTP>prompt: 交互提示模式.
    FTP>put local-file [remote-file] 将本地一个文件传送至远端主机中.
    FTP>pwd: 列出当前远端主机目录.
    FTP>quit: 同BYE.
    FTP>recv remote-file [local-file] 同GET.
    FTP>rename [from] [to] 改变远端主机中的文件名.
    FTP>rmdir directory-name 删除远端主机中的目录.
    FTP>send local-file [remote-file] 同PUT.
    FTP>status: 显示当前FTP的状态.
    FTP>system: 显示远端主机系统类型.
    FTP>user user-name [password] [account] 重新以别的用户名登录远端主机.
    FTP>? [command]: 同HELP. [command]指定需要帮助的命令名称。如果没有指定 command,ftp 将显示全部命令的列表。
    FTP>! 从 ftp 子系统退出到外壳。

    详解:

    1. 连接ftp服务器

    格式:ftp [hostname| ip-address]
    a)在linux命令行下输入:

    ftp 192.168.1.1

    b)服务器询问你用户名和密码,分别输入用户名和相应密码,待认证通过即可。

    2. 下载文件

    下载文件通常用get和mget这两条命令。
    a) get 
    格式:get [remote-file] [local-file]
    将文件从远端主机中传送至本地主机中。
    如要获取远程服务器上/usr/your/1.htm,则

    ftp> get /usr/your/1.htm 1.htm (回车)


    b) mget      
    格式:mget [remote-files]
    从远端主机接收一批文件至本地主机。
    如要获取服务器上/usr/your/下的所有文件,则

    ftp> cd /usr/your/
    ftp> mget *.* (回车)


    此时每下载一个文件,都会有提示。如果要除掉提示,则在mget *.* 命令前先执行:prompt off

    注意:文件都下载到了linux主机的当前目录下。比如,在 /usr/my下运行的ftp命令,则文件都下载到了/usr/my下。

    3.上传文件

    a) put
    格式:put local-file [remote-file]
    将本地一个文件传送至远端主机中。
    如要把本地的1.htm传送到远端主机/usr/your,并改名为2.htm

    ftp> put 1.htm /usr/your/2.htm (回车)


    b) mput
    格式:mput local-files
    将本地主机中一批文件传送至远端主机。
    如要把本地当前目录下所有html文件上传到服务器/usr/your/ 下

    ftp> cd /usr/your (回车)
    ftp> mput *.htm (回车)


    注意:上传文件都来自于主机的当前目录下。比如,在 /usr/my下运行的ftp命令,则只有在/usr/my下的文件linux才会上传到服务器/usr/your 下。

    4. 断开连接
    bye:中断与服务器的连接。

    ftp> bye (回车)
     

     命令介绍:

    1.FTP> ! 从 ftp子系统退出到外壳。
    2.FTP> ? 显示 ftp命令说明。? 与 help相同。
      格式:? [command]
      说明:[command]指定需要帮助的命令名称。如果没有指定 command,ftp将显示全部命令的列表。
    3.FTP> append 使用当前文件类型设置将本地文件附加到远程计算机上的文件。
      格式:append local-file [remote-file]
      说明:local-file 指定要添加的本地文件。
      remote-file 指定要添加 local-file的远程计算机上的文件。如果省略了 remote-file,本地文件名将被用作远程文件名。
    4.FTP> ascii 将文件传送类型设置为默认的 ASCII。
      说明:FTP 支持两种文件传送类型,ASCII码和二进制图像。在传送文本文件时应该使用ASCII。
    5.FTP> bell 切换响铃以在每个文件传送命令完成后响铃。默认情况下,铃声是关闭的。
    6.FTP> binary(或bi)将文件传送类型设置为二进制。
    7.FTP> bye(或by)结束与远程计算机的 FTP会话并退出 ftp。
    8.FTP> cd 更改远程计算机上的工作目录。
      格式:cd remote-directory
      说明:remote-directory 指定要更改的远程计算机上的目录。
    9.FTP> close 结束与远程服务器的 FTP会话并返回命令解释程序。
      FTP> debug 切换调试。当调试打开时,发送到远程计算机的每个命令都打印,前面是字符串“>”。默认情况下,调试是关闭的。
    10.FTP> delete 删除远程计算机上的文件。
      格式:delete remote-file
      说明:remote-file 指定要删除的文件。
    11.FTP> dir 显示远程目录文件和子目录列表。
      格式:dir [remote-directory] [local-file]
      说明:remote-directory 指定要查看其列表的目录。如果没有指定目录,将使用远程计算机中的当前工作目录。Local-file指定要存储列表的本地文件。如果没有指定,输出将显示在屏幕上。
    12.FTP> disconnect从远程计算机断开,保留 ftp 提示。
    13.FTP> get 使用当前文件转换类型将远程文件复制到本地计算机。
      格式:get remote-file [local-file]
      说明:remote-file 指定要复制的远程文件。
      Local-file 指定要在本地计算机上使用的名称。如果没有指定,文件将命名为 remote-file。
    14.FTP >glob 切换文件名组合。组合允许在内部文件或路径名中使用通配符(*和?)。默认情况下,组合是打开的。
    15.FTP >hash切换已传输的每个数据块的数字签名 (#) 打印。数据块的大小是2048字节。默认情况下,散列符号打印是关闭的。
    16.FTP >help显示 ftp 命令说明。
      格式:help [command]
      说明:command 指定需要有关说明的命令的名称。如果没有指定 command,ftp将显示全部命令的列表。
    17.FTP >lcd 更改本地计算机上的工作目录。默认情况下,工作目录是启动 ftp的目录。
      格式:lcd [directory]
      说明:directory 指定要更改的本地计算机上的目录。如果没有指定directory,将显示本地计算机中当前的工作目录。
    18.FTP >literal 将参数逐字发送到远程 FTP服务器。将返回单个的 FTP 回复代码。
      格式:literal argument [ ...]
      说明:argument 指定要发送到 FTP服务器的参数。
    19.FTP >ls 显示远程目录文件和子目录的缩写列表。
      格式:ls [remote-directory] [local-file]
      说明:remote-directory 指定要查看其列表的目录。如果没有指定目录,将使用远程计算机中的当前工作目录。 local-file指定要存储列表的本地文件。如果没有指定,输出将显示在屏幕上。
    20.FTP >mdelete 删除远程计算机上的文件。
      格式:mdelete remote-files [ ...]
      说明:remote-files 指定要删除的远程文件。
    21.FTP >mdir显示远程目录文件和子目录列表。可以使用 mdir 指定多个文件。
      格式:mdir remote-files [ ...] local-file
      说明:remote-files 指定要查看列表的目录。必须指定 remote-files。请键入 -使用远程计算机上的当前工作目录。
      local-file 指定要还原列表的本地文件。请键入-在屏幕上显示列表。
    22.FTP >mget 使用当前文件传送类型将远程文件复制到本地计算机。
      格式:mget remote-files [ ...]
      说明:remote-files 指定要复制到本地计算机的远程文件。
    23.FTP >mkdir 创建远程目录。
      格式:mkdir directory
      说明:directory 指定新的远程目录的名称。
    24.FTP >mls 显示远程目录文件和子目录的缩写列表。
      格式:mls remote-files [ ...] local-file
      说明:remote-files 指定要查看列表的文件。必须指定 remote-files;
      请键入- 使用远程计算机上的当前工作目录。
      local-file 指定要存储列表的本地文件。请键入 -以在屏幕上显示列表。
    25.FTP >mput 使用当前文件传送类型将本地文件复制到远程计算机上。
      格式:mput local-files [ ...]
      说明:local-files 指定要复制到远程计算机的本地文件
    26.FTP >open 与指定的 FTP服务器连接。
      格式:open computer [port]
      说明:computer 指定要连接的远程计算机。可以通过 IP地址或计算机名称指定计算机(DNS 或主机文件必须可用)。如果自动登录打开(默认),ftp还将尝试自动将用户登录到 FTP 服务器port指定用来联系 FTP 服务器的端口号。
    27.FTP >prompt 切换提示。如果关闭提示时 mget及 mput 传送所有文件,Ftp在多文件传送过程中将提示允许您有选择地检索或存储文件。默认情况下,提示是
      打开的。
    28.FTP >put 使用当前文件传送类型将本地文件复制到远程计算机上。
      格式:put local-file [remote-file]
      说明:local-file 指定要复制的本地文件。
      remote-file 指定要在远程计算机上使用的名称。如果没有指定,文件将命名为 local-file。
    29.FTP >pwd 显示远程计算机上的当前目录。
    30.FTP >quit 结束与远程计算机的 FTP 会话并退出 ftp。
    31.FTP >quote 将参数逐字发送到远程 FTP服务器。将返回单个的 FTP 回复代码。
      Quote 与 literal相同。
      格式:quote argument [ ...]
      说明:argument 指定要发送到 FTP服务器的参数。
    32.FTP >recv使用当前文件传送类型将远程文件复制到本地计算机。Recv 与 get相同。
      格式:recv remote-file [local-file]
      说明:remote-file 指定要复制的远程文件。
      local-file 指定要在本地计算机上使用的名称。如果没有指定,文件将命名为 remote-file。
    33.FTP >remotehelp显示远程命令帮助。
      格式:remotehelp [command]
      说明:command 指定需要帮助的命令的名称。如果没有指定 command,ftp将显示全部远程命令的列表。
    34.FTP >rename重命名远程文件。
      格式:rename filename newfilename
      说明:filename 指定要重命名的文件。 newfilename指定新的文件名。
    35.FTP >rmdir 删除远程目录。
      格式:rmdir directory
      说明:directory 指定要删除的远程目录的名称。
    36.FTP >send 使用当前文件传送类型将本地文件复制到远程计算机上。Send与put 相同。
      格式:send local-file [remote-file]
      说明:local-file 指定要复制的本地文件。 remote-file指定要在远程计算机上使用的名称。如果没有指定,文件将命名为 local-file。
    37.FTP >status 显示 FTP 连接和切换的当前状态。
    38.FTP >trace 切换数据包跟踪。Trace在运行 ftp 命令时显示每个数据包的路由。
    39.FTP >type 设置或显示文件传送类型。
      格式:type [type-name]
      说明:type-name 指定文件传送类型。默认设置为 ascii。如果没有指定type-name,将显示当前的类型。
    40.FTP >user 指定远程计算机的用户。
      格式:user username [password] [account]
      说明:user-name 指定登录到远程计算机所使用的用户名。password指定 user-name 的密码。如果没有指定,但必须指定,ftp会提示输入密码。
      account 指定登录到远程计算机所使用的帐户。如果没有指定account,但是需要指定,ftp会提示您输入帐户。
    41.FTP >verbose 切换 verbose模式。如果打开,将显示所有 ftp 响应。在文件传送完成后,将同时显示与传送效率有关的统计信息。默认情况下,verbose是打开的。

    附录:ftp命令表

    FTP采用客户端/服务器模型,客户端和服务器使用TCP建立连接。在服务器端,FTP有两个预分配的的端口号,分别为20和21.其中,端口20用于发送和接受FTP数据(ASCII码或二进制文件),该数据端口只在传输数据是打开,并在传输结束时关闭。端口21用于发送和接受FTP的控制信息,FTP服务器通过侦听这个端口来判断是否有ftp客户端的连接请求,FTP会话建立后,端口21的连接在会话期间始终保持打开状态。

    在客户端,当发出请求时动态分配端口号,选择范围为1024~65535.当一个FTP会话开始后,客户端程序打开一个控制端口(如1038),该端连接到服务器上的21端口,接受和发送控制信命令;需要传输数据时,客户端再打开第二个端口(如1039),连接到服务器上的20端口。每当开始传输文件时,客户端程序会打开一个新的数据端口,在文件传输完毕后,再自动释放该端口。

    该命令的语法格式如下所示:

    ftp [-v] [-d] [–i] [-n] [-g] [-k realm] [-x] [-u] [host]

    ftp命令主要选项说明
    
     选项  说明
     -d     启动调试模式
     -u     关闭自动认证
     -e     不记录历史指令
     -i     关闭交互模式
     -x     在成功认证之后,协商密钥
     -n     关闭自动登录功能
     -p     传输文件模式为被动模式
     -v     程序运行时,显示详细的处理信息
     -k realm     使用Kerberos v4认证时,从realm中得到信息
     host     FTP服务器的主机名/IP地址

    在客户端访问FTP时,如果没有在命令行给出服务器的主机名或IP,则客户端将出现“ftp>”提示符,等待用户输入ftp内部命令
    常见ftp内部命令及其说明

     内部命令  说明

    ls     显示服务器上的目录
    get     从服务器下载指定文件到客户端
    put     从客户端传送指定文件到服务器
    open     连接ftp服务器
    quit     断开连接并退出ftp服务器
    cd directory     改变服务器的当前目录为directory
    lcd directory     改变本地的当前目录为directory
    bye     退出ftp命令状态
    ascii     设置文件传输方式为ASCII模式
    binary     设置文件传输方式为二进制模式
    !     执行本地主机命令
    cd     切换远端ftp服务器上的目录
    cdup     上一层目录
    close     在不结束ftp进程的情况下,关闭与ftp服务器的连接
    delete     删除远端ftp服务器上的文件
    get     下载
    hash     显示#表示下载进度
    mdelete     删除文件,模糊匹配
    mget     下载文件,模糊匹配
    mput     上传文件,模糊匹配
    mkdir     在远端ftp服务器上,建立文件夹
    newer     下载时,检测是不是新文件
    prompt     关闭交互模式
    put     上传
    pwd     显示当前目录

    ftp使用的内部命令如下(中括号表示可选项):

    1.![cmd[args]]:在本地机中执行交互shell,exit回到ftp环境,如:!ls*.zip.
    2.$ macro-ame[args]:执行宏定义macro-name.
    3.account[password]:提供登录远程系统成功后访问系统资源所需的补充口令。
    4.append local-file[remote-file]:将本地文件追加到远程系统主机,若未指定远程系统文件名,则使用本地文件名。
    5.ascii:使用ascii类型传输方式。
    6.bell:每个命令执行完毕后计算机响铃一次。
    7.bin:使用二进制文件传输方式。
    8.bye:退出ftp会话过程。
    9.case:在使用mget时,将远程主机文件名中的大写转为小写字母。
    10.cd remote-dir:进入远程主机目录。
    11.cdup:进入远程主机目录的父目录。
    12.chmod mode file-name:将远程主机文件file-name的存取方式设置为mode,如:chmod 777 a.out。
    13.close:中断与远程服务器的ftp会话(与open对应)。
    14.cr:使用asscii方式传输文件时,将回车换行转换为回行。
    15.delete remote-file:删除远程主机文件。
    16.debug[debug-value]:设置调试方式,显示发送至远程主机的每条命令,如:deb up 3,若设为0,表示取消debug。
    17.dir[remote-dir][local-file]:显示远程主机目录,并将结果存入本地文件local-file。
    18.disconnection:同close。
    19.form format:将文件传输方式设置为format,缺省为file方式。
    20.get remote-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[modename]:将文件传输方式设置为modename,缺省为stream方式。
    35.modtime file-name:显示远程主机文件的最后修改时间。
    36.mput local-file:将多个文件传输至远程主机。
    37.newer file-name:如果远程机中file-name的修改时间比本地硬盘同名文件的时间更近,则重传该文件。
    38.nlist[remote-dir][local-file]:显示远程主机目录的文件清单,并存入本地硬盘的local-file。
    39.nmap[inpattern outpattern]:设置文件名映射机制,使得文件传输时,文件中的某些字符相互转换,如:nmap $1.$2.$3[$1,$2].[$2,$3],则传输文件a1.a2.a3时,文件名变为a1,a2。该命令特别适用于远程主机为非UNIX机的情况。
    40.ntrans[inchars[outchars]]:设置文件名字符的翻译机制,如ntrans 1R,则文件名LLL将变为RRR。
    41.open host[port]:建立指定ftp服务器连接,可指定连接端口。
    42.passive:进入被动传输方式。
    43.prompt:设置多个文件传输时的交互提示。
    44.proxy ftp-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.reget remote-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 13056.rmdir dir-name:删除远程主机目录。
    57.runique:设置文件名唯一性存储,若文件存在,则在原文件后加后缀..1,.2等。
    58.send local-file[remote-file]:同put。
    59.sendport:设置PORT命令的使用。
    60.site arg1,arg2…:将参数作为SITE命令逐字发送至远程ftp主机。
    61.size file-name:显示远程主机文件大小,如:site idle 720062.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,如:type binary,设置二进制传输方式。
    70.umask[newmask]:将远程服务器的缺省umask设置为newmask,如:umask 371.user user-name[password][account]:向远程主机表明自己的身份,需要口令时,必须输入口令,如:user anonymous my@email。
    72.verbose:同命令行的-v参数,即设置详尽报告方式,ftp服务器的所有响应都将显示给用户,缺省为on.
    73.?[cmd]:同help。

    附表:

    ascii

    为文本文件设置传输方式为ascii

    bell

    命令完成时响铃

    binary 

    设置传输方式为二进制,这是缺省设置

    bye 

    终止ftp会话,并退出

    cd dir_name

    切换远程主机上目录

    cdup

    切换远程主机上目录至上一级目录

    close

    终止到远程主机的ftp会话

    delete file_name

    删除远程主机中的文件

    dir 

    显示远程主机上目录列表

    get file_name

    下载一个文件

    hash 

    每传输一定数量数据打印`#'

    lcd dir_name

    切换本地工作目录

    ls 

    列表远程主机目录中的信息

    mdelete file_names

    删除多个文件

    mget file_names

    下载多个文件

    mkdir dir_name

    在远程主机上创建目录

    mput file_names

    上传多个文件

    open site_name

    连接到远程tftp

    prompt

    设置多个文件传输时的交互提示

    put file_name

    上传一个文件

    pwd

    显示远程主机当前工作目录

    quit 

    终止ftp会话并退出

    rename old_name new_name

    重命名文件

    rmdir dir_name

    删除远程主机上的某个目录

    size file_name

    显示远程主机上某个文件的大小

    status 

    显示当前状态

    system

    显示远程主机操作系统类型

    tenex 

    将文件传输类型设置为tenex机所需的类型

    user

    向远程主机发送用户信息(登录信息)

    verbose 

    开关verbose方式,远程主机所有响应都显示给客户

     
    参考文章:
    https://blog.csdn.net/yexiangCSDN/article/details/80988355
    https://blog.csdn.net/sandy9919/article/details/81334064
     
  • 相关阅读:
    win7下的vxworks总结
    ubuntu 无法获得锁 /var/lib/dpkg/lock
    项目中用到了的一些批处理文件
    win7下安装 WINDRIVER.TORNADO.V2.2.FOR.ARM
    使用opencv统计视频库的总时长
    January 05th, 2018 Week 01st Friday
    January 04th, 2018 Week 01st Thursday
    January 03rd, 2018 Week 01st Wednesday
    January 02nd, 2018 Week 01st Tuesday
    January 01st, 2018 Week 01st Monday
  • 原文地址:https://www.cnblogs.com/huzixia/p/10390001.html
Copyright © 2011-2022 走看看