Linux命令行下载工具

目录
wget
aria2
cURL
Youtube-dl

https://zh.wikipedia.org/wiki/下载管理程序比较
https://wiki.archlinux.org/index.php/List_of_applications/Internet#Download_managers

wget

https://wiki.archlinux.org/index.php/Wget
https://www.gnu.org/software/wget/
https://www.gnu.org/software/wget/manual/wget.html#Examples
https://www.gnu.org/software/wget/manual/wget.html#Simple-Usage
http://man.linuxde.net/wget
GNU Wget是一个免费软件包,用于使用HTTP,HTTPS,FTP和FTPS(自版本1.18以来的FTPS)检索文件。
非交互式命令行工具,因此可以从脚本轻松调用它。
配置文件:/etc/wgetrc

Wget最基本和最常见的用例之一是从Internet下载文件。
$ wget <url>

存档一个完整的网站
Wget可以存档一个完整的网站,同时通过更改相对链接的绝对链接来保留正确的链接目的地。
$ wget -np -r -k
'http://your-url-here'

镜像网站
wget --mirror -p
--convert-links -P ./LOCAL URL

下载整个网站到本地。

  • --miror开户镜像下载。
  • -p下载所有为了html页面显示正常的文件。
  • --convert-links下载后,转换成本地的链接。
  • -P
    ./LOCAL保存所有文件和目录到本地指定目录。

过滤指定格式下载
wget --reject=gif
ur

下载一个网站,但你不希望下载图片,可以使用这条命令。

下载指定格式文件
wget -r -A.pdf
url

可以在以下情况使用该功能:
下载一个网站的所有图片。
下载一个网站的所有视频。
下载一个网站的所有PDF文件。

以下的例子是从网络下载一个文件并保存在当前目录,在下载的过程中会显示进度条,包含(下载完成百分比,已经下载的字节,当前下载速度,剩余下载时间)。
下载并以不同的文件名保存
wget -O
wordpress.zip http://www.linuxde.net/download.aspx?id=1080
wget默认会以最后一个符合/的后面的字符来命令,对于动态链接的下载通常文件名会不正确。

wget限速下载
wget
--limit-rate=300k http://www.linuxde.net/testfile.zip
当你执行wget的时候,它默认会占用全部可能的宽带下载。但是当你准备下载一个大文件,而你还需要下载其它文件时就有必要限速了。

使用wget断点续传
wget -c
http://www.linuxde.net/testfile.zip
使用wget
-c重新启动下载中断的文件,对于我们下载大文件时突然由于网络等原因中断非常有帮助,我们可以继续接着下载而不是重新下载一个文件。需要继续中断的下载时可以使用-c参数。

使用wget后台下载
wget -b
http://www.linuxde.net/testfile.zip
Continuing in
background, pid 1840.
Output will be
written to `wget-log'.
对于下载非常大的文件的时候,我们可以使用参数-b进行后台下载,你可以使用以下命令来察看下载进度:

伪装代理名称下载
wget
--user-agent="Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US)
AppleWebKit/534.16 (KHTML, like Gecko) Chrome/10.0.648.204
Safari/534.16" http://www.linuxde.net/testfile.zip
有些网站能通过根据判断代理名称不是浏览器而拒绝你的下载请求。不过你可以通过--user-agent参数伪装。

下载多个文件
wget -i filelist.txt

aria2

https://wiki.archlinux.org/index.php/Aria2
https://aria2.github.io/
aria2是一个轻量级的多协议和多源命令行下载实用程序。它支持HTTP
/ HTTPS,FTP,BitTorrent和Metalink。aria2可以通过内置的JSON-RPC和XML-RPC接口进行操作。

特征

  • 多连接下载。aria2可以从多个源/协议下载文件,并尝试利用您的最大下载带宽。真正加快您的下载体验。
  • 轻量级。aria2不需要太多内存和CPU时间。当磁盘缓存关闭时,物理内存使用量通常为4MiB(正常HTTP
    / FTP下载)到9MiB(BitTorrent下载)。下载速度为2.8MiB
    /秒的BitTorrent的CPU使用率约为6%。
  • 功能齐全的BitTorrent客户端。您可以在BitTorrent客户端中使用所有功能:DHT,PEX,加密,磁体URI,Web种子,选择性下载,本地对等发现和UDP跟踪器。
  • Metalink已启用。aria2支持Metalink下载格式
    (又名Metalink v4),Metalink版本3和
    Metalink / HTTP。Metalink提供文件验证,HTTP
    / FTP / SFTP / BitTorrent集成以及语言,位置,操作系统等的各种配置。
  • 遥控器。aria2支持RPC接口来控制aria2进程。支持的接口是JSON-RPC(通过HTTP和WebSocket)和XML-RPC。

配置文件:aria2.conf

continue
dir=${HOME}/Desktop
file-allocation=none
input-file=${HOME}/.aria2/input.conf
log-level=warn
max-connection-per-server=4
min-split-size=5M
on-download-complete=exit

This is
essentially the same as if running the following:

$ aria2c
--dir=${HOME}/Desktop --file-allocation=none
--input-file=${HOME}/.aria2/input.conf --on-download-complete=exit
--log-level=warn FILE

WEB下载:
$ aria2c
http://example.org/mylinux.iso

2个来源下载:
$ aria2c
http://a/f.iso ftp://b/f.iso

每个主机使用2个连接下载:
$ aria2c -x2
http://a/f.iso

BitTorrent的:
$ aria2c
http://example.org/mylinux.torrent

BitTorrent磁铁URI
$ aria2c
'magnet:?xt=urn:btih:248D0A1CD08284299DE78D5C1ED359BB46717D8C'

Metalink知识库:
$ aria2c
http://example.org/mylinux.metalink

下载文本文件中的URI
$ aria2c -i uris.txt

cURL

curl, An URL
retrieval utility and library. URL检索实用程序和库
https://curl.haxx.se/
https://curl.haxx.se/book.html
http://man.linuxde.net/curl
http://www.ruanyifeng.com/blog/2011/09/curl.html
$ curl 网址
//返回网页源码
如果要把这个网页保存下来,可以使用`-o`参数,这就相当于使用wget命令了。
$ curl -o [文件名]
www.sina.com

最新的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能够从特定的文件偏移处继续下载,它可以通过指定一个便宜量来下载部分文件:
curl URL/File -C 偏移量
#偏移量是以字节为单位的整数,如果让curl自动推断出正确的续传位置使用-C
-:
curl -C -URL

Youtube-dl

同样也能支持断点续传,详见下面链接原文。
https://wiki.archlinux.org/index.php/Youtube-dl
youtube-dl是一个命令行程序,可让您轻松地从超过一千个网站下载视频和音频。请参阅支持的站点列表。
https://github.com/ytdl-org/youtube-dl/blob/master/docs/supportedsites.md
https://jlk.fjfi.cvut.cz/arch/manpages/man/youtube-dl.1
https://itsfoss.com/download-youtube-videos-ubuntu/
https://linux.cn/article-6473-1.html
https://linux.cn/article-9244-1.html
https://www.cnblogs.com/wpjamer/p/7392592.html
https://www.howtoing.com/install-youtube-dl-command-line-video-download-tool/

上一篇:ios面试基础


下一篇:测试题1 IOS面试基础题