• 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
     
  • 相关阅读:
    为什么要财务自由
    2019小目标
    《小狗钱钱》后感
    从月光入门到迈出投资第一步
    tslint编译问题-内存溢出
    简单数组
    计算矩阵的乘积
    非数组求杨辉三角
    一维数组求杨辉三角
    二维数组求杨辉三角
  • 原文地址:https://www.cnblogs.com/huzixia/p/10390001.html
Copyright © 2020-2023  润新知