• Linux之ftp命令使用


    一:前言

    在达内參加暑期社会实践,达内公司免费教授了一星期的课,当时认为老师用ftp命令用的非常爽。所以回来学学了。

    二:分类

    有关FTP(client,server搭建这里不讲)有非常多,大体分为命令行和GUI图形界面的软件。

    1,图形界面的有

    gftp

    gnome下ftpclient

    crossftp

    基于Java的稳定ftpclient和同步工具。优良的中文/Unicode支持。

    Kftpgrabber

    KDE下ftpclient,支持编码选择。对中文支持较好

    filezilla

    对中文支持好

    krusader

    也能够通过浏览器输入ftp://ip使用

    假设有喜欢的能够通过apt-get 或者 aptitude 安装。

    2,CLI(命令行)主要有ftp 和 lftp 

    (1)ftp

    1. 连接ftpserver

      格式:ftp [hostname| ip-address]

      a)linux命令行下输入:ftp 10.18.34.115 

      b)server询问你username和口令,分别输入yint和对应password,待认证通过就可以。

     

        或者用以下的格式  

       ftp - -i  -n  IP_ADDRESS

      user USERNAME PASSWORD

        比方:

        ftp -i -n 172.17.17.17

        user  PUB    123456

    也能够自己写个脚本自己主动登录。

    cyq@cyq-desktop:~/桌面/shell$ cat ftp.sh

    #!/bin/sh

    ftp -i -n  172.17.17.17

    << !

    user  PUB    123456

    !

    这样就能够自己主动登录了。

     

      2. 下载文件

      下载文件通经常使用getmget这两条命令。

      a) get 

      格式:get [remote-file] [local-file]

      将文件从远端主机中传送至本地主机中.

      如要获取server上E:/rose/1.bmp,

      ftp> get /rose/1.bmp 1.bmp (回车)

      b) mget      

      格式:mget [remote-files]

      从远端主机接收一批文件至本地主机.

      如要获取server上E:/rose/下的全部文件,

      ftp> cd /rose

      ftp> mget *.* (回车)

      注意:文件都下载到了linux主机的当前文件夹下。比方,在 /root/yint下执行的ftp命令,则文件都下载到了/root/yint下。

      3.上传文件

      a) put

      格式:put local-file [remote-file]

      将本地一个文件传送至远端主机中.

      如要把本地的1.bmp传送到远端主机E:/rose,并改名为333.bmp

      ftp> put 1.bmp /rose/333.bmp (回车)

      b) mput

      格式:mput local-files

      将本地主机中一批文件传送至远端主机.

      如要把本地当前文件夹下全部bmp文件上传到serverE:/rose 

      ftp> cd /rose (回车)

      ftp> mput *.bmp (回车)

      注意:上传文件都来自于主机的当前文件夹下。比方,在 /root/yint下执行的ftp命令,则仅仅有在/root/yint下的文件linux才会上传到serverE:/rose 下。

      4. 断开连接

      bye:中断与server的连接。

      ftp> bye (回车)

    (2)lftp

    在用lftp訪问国内一些ftpserver时,往往看到的中文是乱码,这是因为server和本地编码不一致造成的。

    解决的方法

    在主文件夹下新建一个文件~/.lftprc或者~/.lftp/rc

    比方我在终端中输入:

    gedit ~/.lftprc  #在当前文件夹下建立.lftprc文件

    然后在弹出的对话框中输入下面内容:

    debug 3

    set ftp:charset GBK

    set file:charset UTF-8

    #set ftp:passtive-mode no

    #alias utf8 " set ftp:charset UTF-8"

    #alias gbk " set ftp:charset GBK"

     

    上面的这几行的意思是

    设置本地和ftpserver的编码方式

    alias 是使用别名命令

    假设对于常常使用不同编码的 ftp server 的朋友,或常常使用不同的选项的,能够设置一些别名,这样会方便非常多。 
    比方:

    我常常訪问 gbk 编码的 ftp, 还有 utf8 编码的,那么我在 ~/.lftp 中这样写 

    代码:

    alias   gbk  set ftp:charset gbk; set file:charset UTF-8
    alias   utf8 set ftp:charset UTF-8; set file:charset UTF-8

     

    那么当我訪问一个 utf8 网站的时候,假设发现乱码,仅仅要在 lftp 的命令提示符号以下输入 utf8 就能够将编码调整正常。同理,假设訪问 gbk 的发现乱码就输入 gbk, 立即正常。

     

    以下解说使用lftp

    1、登录ftp

    代码:

    lftp username:password@ftp地址:传送port(默认21

    比如: $ lftp test:123456@172.17.17.17

        


    也能够先不带username登录,然后在接口界面下用login命令来用指定账号登录,password不显示。

    lftp user@site:port

    比如:$ lftp test@172.17.17.17

     

          口令

    然后就进入了。(这里输入的口令是password,linux下password不显示)

    2、查看文件与改变文件夹

    代码:

    ls
    cd 相应ftp文件夹

     

    lftp终端中,前面带一个l的命令比如lcd,指的是local,就是在本机的操作,而相应的没有这个l的,都是对ftp site的操作。还有就是要运行本地终端命令,也能够用前面带一个!的方式。这样,配合起来,终端,本地的操作都非常放遍。
    比如,查看ftp上全部的以mp3为扩展名的文件:

    代码:

    find . -name "*.mp3"

     

    代码:

    lftp test@172.17.17.17:/> lcd

     

    lcd 成功本地文件夹=/home/cyq

     

    lftp test@172.17.17.17:/> 

     

     

    3、下载
    get当然是能够的,还能够

    代码:

    mget -c *.pdf

     

    把全部的pdf文件以同意断点续传的方式下载。m代表multi

    代码:

    mirror aaa/

     

    aaa文件夹整个的下载下来,子文件夹也会自己主动复制

    代码:

    pget -c -n 10 file.dat

     

    以最多10个线程以同意断点续传的方式下载file.dat
    能够通过设置pget:default-n的值而使用默认值。

     

    4、上传
    相同的putmput,都是对文件的操作,和下载相似。

    代码:

    mirror -R 本地文件夹名

     

    将本地文件夹以迭代(包含子文件夹)的方式反向上传到ftp site

     

    5、模式设置。

    代码:

    set ftp:charset gbk

     

    远程ftp sitegbk编码,相应的要设置为utf8,仅仅要替换gbkutf8就可以。

    代码:

    set file:charset utf8

     

    本地的charset设定为utf8,假设你是gbk,对应改掉。

     

    代码:

    set ftp:passive-mode 1

     

    使用被动模式登录,有些site要求必须用被动模式或者主动模式才干够登录,这个开关就是设置这个的。0代表不用被动模式。

     

    6、书签
    事实上命令行也能够有书签,在lftp终端提示符下:

    代码:

    bookmark add ustc

     

    就能够把当前正在浏览的ftp siteustc作为标签储存起来。以后在shell终端下,直接

    代码:

    lftp ustc

     

    就能够自己主动填好username,password,进入相应的文件夹了。

     

    代码:

    bookmark edit 

     

    会调用编辑器手动改动书签。当然,也能够看到,这个书签事实上就是个简单的文本文件。password,username都能够看到。 

     

    7、配置文件 
    /etc/lftp.conf 
    一般,我会加入这几行: 

    引用:

    set ftp:charset gbk
    set file:charset utf8
    set pget:default-n 5

     

    这样,就不用每次进入都要打命令了。其它的set 能够自己tab然后help 来看。 

     

    以下是经常使用命令

    ls 

    显示远端文件列表(ils 显示本地文件列表)# l 的意思就是local ils比較特殊

    cd 

    切换远端文件夹(lcd 切换本地文件夹)。 

    get

    下载远端文件。 

    mget

    下载远端文件(能够用通配符也就是 *)。 

    pget

    使用多个线程来下载远端文件预设为五个。 

    mirror

    下载/上传(mirror -R)/同步 整个文件夹。 

    put

    上传文件。 

    mput

    上传多个文件(支持通配符)。 

    mv

    移动远端文件(远端文件改名)。 

    rm

    删除远端文件。 

    參数-r,递归删除目录 

    mrm

    删除多个远端文件(支持通配符)。 

    mkdir

    建立远端文件夹。 

    rmdir

    删除远端文件夹。 

    pwd

    显示眼下远端所在文件夹(lpwd 显示本地文件夹)。 

    du

    计算远端文件夹的大小 

    set net:limit-rate 10000,10000 

    限制上传下载各为10KB/s 

    set ftp:charset gbk

    设置远程ftp sitegbk编码 

    !

    运行本地 shell的命令(因为lftp 没有 lls, 故可用 !ls 来替代

    lcd

    切换本地文件夹 

    lpwd

    显示本地文件夹 

    alias

    定义别名 

    bookmark

    设定书签。 

    exit

    退出ftp 

     

     

     

     


     

     

     

     

     

    參考资料

    http://forum.ubuntu.org.cn/viewtopic.php?f=70&t=104785

    http://forum.ubuntu.org.cn/viewtopic.php?t=59102&highlight=lftp

    http://wiki.ubuntu.org.cn/index.php?title=Lftp&variant=zh-cn

     

     

    声明:本文档能够任意更改,但必须署名原作者

    作者:凤凰舞者 qq:578989855

  • 相关阅读:
    jquery使用技巧
    依赖倒置原则
    java程序设计单一原则
    java中的 break continue return作用详解
    织梦标签问题集锦--持续补充
    织梦文章列表过长自动省略号隐藏
    织梦网站地图如何修改生成路径?
    织梦发布的文章如何批量替换文章"来源"和"作者"?
    织梦仿站列表页pagelist分页显示竖排,如何修改成横排?
    织梦仿站自定义表单如何在后台显示时间?
  • 原文地址:https://www.cnblogs.com/mengfanrong/p/4338994.html
Copyright © 2020-2023  润新知