在远程服务器或者本地工作时,您可能经常需要从外部源获取内容。要获得这样的内容,特别是当您没有其他选项时,您将需要使用Linux命令行工具来完成这项工作。
在本文中,我们将回顾一些最常用的通过Linux下命令行下载内容的工具。
测试环境为Ubuntu 18.04 LTS
Wget
我们将从一个名为wget的最流行的工具开始。它是一个网络实用程序,可用于通过HTTP,HTTPS和FTP下载内容。 Wget可以在后台和前台使用,这使得它在您需要保持下载运行时非常有用,即使您已经注销了。
这个工具提供了很多选项,允许您执行经过身份验证的下载、具有级别限制的递归下载、接受URL的正则表达式、允许排除、接受来自文件的URL输入以及其他许多选项。wget的选项真的很多,强烈建议通过简单的运行来查看工具的帮助页面。
558idc@558idc:~/558idc.com$ wget -h
GNU Wget 1.19.4,非交互式的网络文件下载工具。
用法: wget [选项]... [URL]...
长选项所必须的参数在使用短选项时也是必须的。
启动:
-V, --version 显示 Wget 的版本信息并退出
-h, --help 打印此帮助
-b, --background 启动后转入后台
-e, --execute=命令 运行一个“.wgetrc”风格的命令
wget命令的一些有用示例是:
wget最基本的下载示例是:
558idc@558idc:~/558idc.com$ wget https://linux.558idc.com/558idc.com.zip
--2019-03-24 12:31:20-- https://linux.558idc.com/558idc.com.zip
正在解析主机 linux.558idc.com (linux.558idc.com)... 60.191.177.106
正在连接 linux.558idc.com (linux.558idc.com)|60.191.177.106|:443... 已连接。
已发出 HTTP 请求,正在等待回应... 200 OK
长度: 10653910 (10M) [application/x-zip-compressed]
正在保存至: “558idc.com.zip”
558idc.com.zip 100%[===================>] 10.16M 4.54MB/s 用时 2.2s
2019-03-24 12:31:22 (4.54 MB/s) - 已保存 “558idc.com.zip” [10653910/10653910])
从文件中列出的URL下载的示例。 首先是我们的文件列表:
558idc@558idc:~/558idc.com$ cat list.txt
https://linux.558idc.com/558idc.com.gz
https://linux.558idc.com/558idc.com.zip
https://www.558idc.com/index.htm
然后你可以运行下载:
558idc@558idc:~/558idc.com$ wget -i list.txt
要在后台运行下载,您可以使用:
558idc@558idc:~/558idc.com$ wget -b https://linux.558idc.com/558idc.com.gz
继续在后台运行,pid 为 3131。
将把输出写入至 “wget-log.1”。
如果要使用wget和FTP下载单个文件。
$ wget ftp://user:password@host:/www.558idc.com/558idc.txt
一个更有用的例子是使用后台和递归模式,这样你就可以获得目录中的所有文件和文件夹。
$ wget -br ftp://user:password@ftp-host:/558idc.com/
Wget预装在许多现代Linux发行版上,但是如果你需要安装它,你可以使用:
$ sudo apt install wget # Debian/Ubuntu like distros
# yum install wget # CentOS/RHEL
# dnf install wget # Fedora
Curl
curl是一种可用于从服务器传输数据或向服务器传输数据的工具。它支持多种协议。根据其手册页,支持以下协议:DICT,FILE,FTP,FTPS,GOPHER,HTTP,HTTPS,IMAP,IMAPS,LDAP,LDAPS,POP3,POP3S,RTMP,RTSP,SCP,SFTP,SMB,SMBS,SMTP ,SMTPS,TELNET和TFTP。
你可以想象,你可以用这些来做很多事情。正如你可能已经想到的那样,curl支持代理,用户身份验证,FTP上传/下载,文件传输恢复等等。
以下是使用curl的一些示例:
下载文件:
558idc@558idc:~/558idc.com$ curl -O https://linux.558idc.com/558idc.com.zip
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 10.1M 100 10.1M 0 0 4399k 0 0:00:02 0:00:02 --:--:-- 4399k
<预设>
由您选择下载一个文件并修改文件名另存(如下把index.htm另存为558idc.html):
558idc@558idc:~/558idc.com$ curl -o 558idc.html https://www.558idc.com/index.htm
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 44389 100 44389 0 0 256k 0 --:--:-- --:--:-- --:--:-- 256k
要恢复中断下载,您可以使用:
558idc@558idc:~/558idc.com$ curl -C - O https://www.558idc.com/index.htm
您可以在此处查看更多有用的curl示例:见
在Linux中使用curl命令参数详解 https://www.558idc.com/Linux/2019-01/156487.htm
要安装curl,您可以使用:
$ sudo apt install curl # Debian/Ubuntu
# yum install curl # CentOS/RHEL
# dnf install curl # Fedora
Aria2
Aria是另一种多协议下载工具。 Aria支持HTTP / HTTPS,FTP / SFTP BitTorrent和Metalink。与其他功能相比,它的一些功能是它支持从多个位置同时下载文件,磁链接和功能齐全的BitTorrent客户端。
作为BitTorrent客户端,它支持DHT,PEX,加密,磁铁URI,网络种子,选择性下载和本地对等发现。
以下是使用Aria2的一些示例
下载种子文件:
558idc@558idc:~/558idc.com$ aria2c http://releases.ubuntu.com/18.10/ubuntu-18.10-desktop-amd64.iso.torrent
如下图:
使用文本文件中列出的URL下载:
558idc@558idc:~/558idc.com$ aria2c -i list.txt
如下图:
恢复不完整下载:
558idc@558idc:~/558idc.com$ aria2c -c http://releases.ubuntu.com/18.10/ubuntu-18.10-desktop-amd64.iso.torrent
从受密码保护的网站下载:
558idc@558idc:~/558idc.com$ aria2c --http-user=xxx --http-password=xxx https://558idc.com/file
要安装Aria2,您可以使用以下命令:
$ sudo apt install aria2 # Debian/Ubuntu
# yum install aria2 # CentOS/RHEL
# dnf install aria2 # Fedora
Axel
我们列表中的第四个下载实用程序是Axel,它尝试通过对一个文件使用多个连接来改进下载过程。它可以使用多个下载位置进行一次下载。根据开发人员的说法,Axel可以将下载速度提高60%,并且支持协议:HTTP / HTTPS,FTP和FTPS。
以下是使用Axel的一些示例:
要使用Axel执行简单下载,您可以使用以下命令:
558idc@558idc:~/558idc.com$ axel https://linux.558idc.com/558idc.com.zip
正在初始化下载:https://linux.558idc.com/558idc.com.zip
文件大小:10653910 字节
正在打开输出文件 558idc.com.zip.0
正在开始下载
您可以使用相应的选项--max-speed或short选项-s设置最大下载速度。该值以每秒字节数设置:
558idc@558idc:~/558idc.com$ axel --max-speed=2014 https://www.558idc.com/558idc.com.zip
为了演示,本文设为1024字节,如下图
要使用其他名称保存文件,可以使用-o选项指定文件名:
558idc@558idc:~/558idc.com$ axel -o wordpress.zip https://www.558idc.com/558idc.com.zip
如果要在Linux系统上安装Axel,请使用以下命令中的相应命令:
$ sudo apt install axel # Ubuntu/Debian
# yum install epel release && yum install axel # CentOS/RHEL
# dnf install axel # Fedora
总结
这是我们列出的Linux中使用最广泛的一些下载实用程序。你在使用哪一种呢?你为什么更喜欢这些?请在下面的评论部分分享你的观点。