LFTP : 一个功能强大的命令行FTP程序

LFTP : 一个功能强大的命令行FTP程序

大家好,这篇文章是介绍Lftp以及如何在Linux操作系统下安装的。Lftp是一个基于命令行的文件传输软件(也被称为FTP客户端),由Alexander Lukyanov开发并以GNU GPL协议许可发行。除了FTP协议外,它还支持FTPS,HTTP,HTTPS,HFTP,FISH,以及SFTP等协议。这个程序还支持FXP,允许数据绕过客户端直接在两个FTP服务器之间传输。

它有很多很棒的高级功能,比如递归镜像整个目录树以及断点续传下载。传输任务可以安排在稍后的时间段计划执行,可以限制带宽,可以创建传输列表,还支持类似Unix shell的任务控制。客户端还可以在交互式或自动脚本里使用。

安装Lftp

在运行lftp之前,我们需要确定它已经正确安装在我们的Linux发行版中了。下面是在常见Linux发行版中安装lftp的一些命令。

Ubuntu 14.04 LTS

在Ubuntu 14.04 LTS以及它的衍生版中,我们可以通过apt管理程序安装lftp。要安装它,我们需要使用sudo权限在shell或终端里运行下面的命令。


  1. $ sudo apt-get install lftp

ubuntu install lftp

CentOS/Fedora/RHEL

因为在Fedora,CentOS和RHEL的软件仓库里也能找到lftp,我们可以用yum管理程序来安装它。


  1. $ sudo yum install lftp

fedora lftp

Arch Linux

在Arch Linux安装包仓库里也有,我们可以简单地使用pacman来安装它。


  1. $ sudo pacman -S lftp

archlinux install lftp

OpenSuse

OpenSuse系统里的包管理软件Zypper可以用来安装lftp。下面是在OpenSuse机器上用来安装的命令。


  1. $ sudo zypper install lftp

opensuse lftp install

登录

要登录到ftp服务器或sftp服务器,我们首先需要知道所要求的认证信息,比如用户名,密码,端口。

之后,我们可以通过lftp来登录。


  1. $ lftp ftp://linoxide@localhost

ftp login

如果需要指定登录端口,我们可以按下面的方式加上去。


  1. $ lftp ftp://linoxide@localhost:21

ftp login with ports

导航

我们可以用ls命令来列出文件和目录,用cd命令进入到目录。

ls and cd

上传和下载文件

我们可以用pget命令来从远端服务器下载文件。


  1. > pget linspeed.svg

pget lftp

我们可以用put命令来上传文件到远端服务器。


  1. > put linoxide.tar

upload with put

要恢复之前只下载了一部分的文件/目录,我们可以用-c开关:


  1. > mirror -c Directory
  2. >pget -c linoxide.tar
  3. > put -c upload.tar

使用镜像命令

我们可以用mirror命令来下载所指定的整个目录。


  1. > mirror remote local

download with mirror

还可以做反向镜像(mirror -R),可以用来上传或更新本地目录树到服务器上。


  1. > mirror -R local remote

upload or update with mirror reverse

要恢复之前下载了一部分的文件/目录,我们可以用-c开关:


  1. > mirror -c Directory

下载队列

我们可以在lftp里使用queue的选项,这样我们可以像基于GUI的客户端那样挨个下载队列里选择的文件。下面举个例子。

为了避免队列自动开始传输,我们可以这样做:


  1. > queue stop

现在,我们添加任务到队列。


  1. > queue mirror "directory"
  2. > queue pget "file.tar"

在建立好队列后,我们再运行queue start命令。


  1. > queue start

可以运行下面的命令移除整个队列。


  1. > queue -d

分块下载

下面是一个把一个文件分成3块来下载的例子,你可以根据自己的需要调整。

使用pget命令分块功能的方式是pget -n 3 file.tar,里面的3是分块的数目。


  1. > pget -n 3 file.tar

使用mirror命令分块功能的方式是mirror --use-pget-n=3 directory,里面的3是分块的数目。


  1. > mirror --use-pget-n=3 linxoxide

我们可以用jobs -v命令来查看每个独立分块的下载速度以及整体速度。

停止,继续或删除一次传输任务

要取消传输我们可以按下Ctrl+C。而要恢复下载我们可以像下面那样使用-c (--continue)开关。


  1. > mirror -c directory

要删除一次正在正在传输的任务我们可以用kill命令,而要删除所有任务我们可以使用下面那样的kill all命令。


  1. > kill
  2. > kill all

退出

要从lftp退出,我们需要在终端或lftp交互接口中运行exit命令。


  1. > exit

总结

哇!我们已经成功地安装了lftp并学会了它的一些基础的主要使用方式。lftp是一个非常棒的命令行ftp客户端,它支持许多额外的功能以及很酷的特性。它比其他普通ftp客户端多了很多东西。好吧,你要是有任何问题,建议,反馈,请在下面的评论区里留言。谢谢!享用lftp吧

原文发布时间:2015-05-17

本文来自云栖合作伙伴“linux中国”

时间: 2024-09-20 05:19:15

LFTP : 一个功能强大的命令行FTP程序的相关文章

Ledger-复式记账的一个功能强大的命令行工具

无论你是一个电脑极客还是普通用户,记录账户开销总是必不可少的.虽然在Linux上有很多基于GUI的记账工具(比如 - GNUCash)受到大家欢迎,但是工作在命令行的记账工具是很多用户难以想象的.在本文中,我们将讨论一个功能强大的命令行记账工具-Ledger.   ledger-main Ledger - 复式记账工具 Ledger是复式记账的一个功能强大的命令行工具.对于那些不了解"复式(Double-Entry)"的用户,它这意味着每笔交易都必须有一个源.站在一个外行的角度来看,这

Inxi:一个功能强大的获取Linux系统信息的命令行工具

Inxi 最初是为控制台和 IRC(网络中继聊天)开发的一个强大且优秀的命令行系统信息脚本.可以使用它获取用户的硬件和系统信息,它也用于调试或者社区技术支持工具. 使用 Inxi 可以很容易的获取所有的硬件信息:硬盘.声卡.显卡.网卡.CPU 和 RAM 等.同时也能够获取大量的操作系统信息,比如硬件驱动.Xorg .桌面环境.内核.GCC 版本,进程,开机时间和内存等信息. 运行在命令行和 IRC 上的 Inxi 输出略有不同,IRC 上会有一些可供用户使用的默认过滤器和颜色选项.支持的 IR

rxvt一个功能强大的终端配置示例

rxvt 是一个http://www.aliyun.com/zixun/aggregation/17547.html">功能强大的的终端,它占用资源少,启动速度快,很多人都喜欢使用它.所以我在这里介绍一下Debian系统中rxvt中文终端的安装.在 Debian中有很多个rxvt包,可用apt-cache search rxvt命令查询.主要有以下三类,一个就叫rxvt,不支持中文显示:一个叫rxvt-ml,支持GB和BIG5中文编码:还有一个叫rxvt- unicode,支持unicod

rtorrent - 强大的命令行BT客户端

rtorrent - 强大的命令行BT客户端 NOTE - 文中展示的所有示例和指令都已经在Ubuntu 13.04中测试过.   一.           安装 [root@GY-10000 data]# yum search rtorrent Loaded plugins: security ========================================= N/S Matched: rtorrent =====================================

Java中使用设计模式来优化命令行交互程序的开发

人机交互的方式最初起始于命令行交互,虽然图形界面的交互方式应用越来越广泛,可是命令行交互仍然有着它不可替代的地位.命令行交互程序是以命令行方式进行的http://www.aliyun.com/zixun/aggregation/11432.html">人机交互,即用户按着程序的提示,一步步进行输入,而程序负责解释并最终执行指令. 本文以一个简单的部署 war 包的实例,说明在命令行交互程序设计中遇到的问题,以及如何使用设计模式来解决这些问题. 实例简介 在实例中,命令行交互程序给出了一组问

x509watch 0.5.0发布 命令行应用程序

x509watch一个简单的命令行应用程序,可以用来列出即将过期或已经过期的X.509证书,如SSL证书.所有证书查找都在默认标准的PKI目录,但任何其他目录可以被指定一个参数.只支持Base64编码DER和PEM X.509证书. x509watch 0.5.0本次发布的作品解决了旧32位中系统Perl中Y2K38的问题.但不包括新的根CA捆绑"CA-bundle.trust.crt"在Fedora中.更新了GNU GPLv2的副本,以给出新的金融论坛的地址. 下载地址:http:/

使用Ruby来编写访问Twitter的命令行应用程序的教程_ruby专题

简介 Twitter 现已成为社交网络中的佼佼者.Twitter 只允许用户发布不多于 140 个字符的内容,谁能够想到,这个过去毫不起眼的小网站如今却价值十多亿美元,拥有数百万用户,Twitter 平台上已构建了大量的应用程序,并且不断有新的开发人员准备投入这一浪潮中. 本文并不打算介绍 Twitter(事实上,也没有这个必要).相反,本文将介绍如何访问 Twitter 平台来构建出色的命令行应用程序.Twitter 支持各种编程语言,包括 C++.Java?.Perl.Ruby.PHP 和

应用设计模式开发命令行交互程序

背景介绍 人机交互的方式最初起始于命令行交互,虽然图形界面的交互方式应用越来越广 泛,可是命令行交互仍然有着它不可替代的地位.命令行交互程序是以命令行方式进行的人机交互, 即用户按着程序的提示,一步步进行输入,而程序负责解释并最终执行指令. 本文以一个简 单的部署 war 包的实例,说明在命令行交互程序设计中遇到的问题,以及如何使用设计模式来解决 这些问题. 实例简介 在实例中,命令行交互程序给出了一组问题请求用户输入,然后 根据用户的输入将 war 包部署在服务器上.如图 1 所示,应用程序共

字符串-这个命令行参数程序怎么运行啊?

问题描述 这个命令行参数程序怎么运行啊? #include #include int main(int argc char *argv[]){ char ch; if (argv[1][0] == '-') //注意argv[0]是EXE的路径,所以参数是argv[1].argv[2]-- if (argv[1][1] == 'u') while(( ch=getchar() ) != EOF) putchar( toupper(ch) ); else if (argv[1][1] == 'l'