标签 wget 下的文章

以下是你如何在 Debian、Ubuntu 和其他发行版中修复 “bash: wget command not found” 的错误。

著名的 wget 工具被用来通过终端从 URL 下载任何文件。它是 Linux 终端中最流行和最快速的工具之一。

作为一个 GNU 工具,wget 带来了一些奇妙的功能。你可以实现各种目的,如从网上提取信息、下载文件、暂停/恢复等。

然而,许多 Linux 发行版 在默认安装时并没有附带这个工具。因此,当你想用 wget 下载一些文件时,你会得到 wget 命令未找到的错误。

修复它其实很容易。

修复 wget 命令未找到

你所需要做的就是打开终端,运行以下命令来安装 wget

对于 Ubuntu、Linux Mint、elementaryOS、Debian 和相关发行版:

sudo apt install wget

Arch Linux:

pacman -S wget

对于 Fedora(虽然它默认包括):

sudo dnf install wget

安装后,你就可以使用 wget 程序了。你也可以通过检查其版本来验证它是否正确安装。

wget --version

如何使用 wget

下面是一些关于如何使用 wget 的例子。

命令的语法如下:

wget [选项]… [URL]…

例如,如果我想下载 Ubuntu 的 ISO 文件,那么我可以运行下面的命令,用 URL 直接下载。

wget https://releases.ubuntu.com/22.04.1/ubuntu-22.04.1-desktop-amd64.iso

如何使用 wget 的例子

同样,你也可以使用上述命令下载,或者,通过下面描述的几个开关组合。你也可以通过 wget --help 命令得到这个:

  • -t, --tries=NUMBER 设置重试次数为 NUMBER(0 为不限)
  • --retry-connrefused 即使连接被拒绝,也要重试
  • --retry-on-http-error=ERRORS 逗号分隔的 HTTP 错误列表,以便重试
  • -O, --output-document=FILE 将文件写入 FILE
  • --nc, --no-clobber 跳过那些会下载到现有文件的下载(即覆盖它们)
  • --no-netrc 不要试图从 .netrc 中获取证书
  • -c, --continue 继续已部分下载的文件
  • --start-pos=OFFSETOFFSET 位置开始下载
  • --progress=TYPE 选择进度条类型
  • --show-progress 在详细模式下显示进度条
  • --N, --timestamping 不重新获取文件,除非比本地文件新
  • --no-if-modified-since 在时间戳模式下不使用条件性的 if-modified-since 获取请求的资源
  • --no-use-server-timestamps 不以服务器上的时间戳来设置本地文件的时间戳
  • --S, --server-response 打印服务器响应
  • --spider 不下载任何东西
  • -T, --timeout=SECONDS 设置所有的超时值为 SECONDS
  • --dns-timeout=SECS 将 DNS 查询超时设置为 SECS
  • --connect-timeout=SECS 将连接超时设置为 SECS
  • --read-timeout=SECS 设置读取超时为 SECS
  • --w, --wait=SECONDS 在两次检索之间等待 SECONDS 秒(适用于检索的 URL 超过 1个)
  • --waitretry=SECONDS 在检索的重试之间等待 1 到 SECONDS 秒(适用于检索的 URL 超过 1 个)
  • --random-wait 在两次检索之间等待 0.5WAIT1.5WAIT 秒(适用于检索的 URL 超过 1 个)

总结

我希望这个指南能帮助你解决 Linux 发行版中的 wget 错误。显然方案是非常简单的。

如果有帮助或者你有任何问题,请在下面留言。

参考

via: https://www.debugpoint.com/wget-not-found-error/

作者:Arindam 选题:lkxed 译者:geekpi 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

用你的 Linux 终端中从互联网上下载文件。

 title=

wget 是一个下载网页文件的免费工具。它将互联网上的数据保存到一个文件或展示在终端上。实际上这也是像 Firefox 或 Chromium 这样的网页浏览器的工作原理。有一个区别是,网页浏览器默认将网页 渲染 render 在图形窗口中,并且通常需要用户主动来操作它们。而 wget 工具是无交互的使用方式,也就是说你可以使用脚本或定期使用 wget 来下载文件,不论你人是否在电脑面前。

使用 wget 下载文件

你可以通过提供一个特定 URL 的链接,用 wget 下载一个文件。如果你提供一个默认为 index.html 的 URL,那么就会下载该索引页。默认情况下,文件会被下载到你当前的工作目录,并保持原来的名字。

$ wget http://example.com
--2021-09-20 17:23:47-- http://example.com/
Resolving example.com... 93.184.216.34, 2606:2800:220:1:248:1893:25c8:1946
Connecting to example.com|93.184.216.34|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 1256 (1.2K) [text/html]
Saving to: 'index.html'

通过使用 --output-document- 符号,你可以指示 wget 将数据发送到 标准输出 stdout

$ wget http://example.com --output-document - | head -n4
<!doctype html>
<html>
<head>
   <title>Example Domain</title>

你可以使用 --output-document 选项(简写为 -O)将下载文件命名为任何你想要的名称:

$ wget http://example.com --output-document foo.html

断点续传

如果你正在下载一个超大文件,你可能会遇到中断下载的情况。使用 --continue(简写为 -c),wget 可以确定从文件的哪个位置开始继续下载。也就是说,下次你在下载一个 4 GB 的 Linux 发行版 ISO 时,如果出现了错误导致中断,你不必重新从头开始。

$ wget --continue https://example.com/linux-distro.iso

下载一系列的文件

如果你要下载的不是单个大文件,而是一系列的文件,wget 也能提供很好的帮助。假如你知道要下载文件的路径以及文件名的通用范式,你可以使用 Bash 语法指示一个数字范围的起始和终点来表示这一系列文件名:

$ wget http://example.com/file_{1..4}.webp

镜像整个站点

使用 --mirror 选项你可以下载整个站点,包括它的目录结构。这与使用选项 --recursive --level inf --timestamping --no-remove-listing 的效果是一样的,该选项表明可以进行无限制的递归,得到你指定域下的所有内容。但你也可能会得到比预期多得多的内容,这取决于站点本身的老旧程度。

如果你正在使用 wget 来打包整个站点,选项 --no-cookies --page-requisites --convert-links 非常有用,它可以确保打包的站点是全新且完整的,站点副本或多或少是 自包含的 self-contained

修改 HTML 标头

在计算机发送的通信报文里含有大量用于数据交换的 元数据 metadata 。HTTP 标头是初始数据的组成部分。当你浏览某个站点时,你的浏览器会发送 HTTP 请求标头。使用 --debug 选项可以查看 wget 为每个请求发送了什么样的标头信息:

$ wget --debug example.com
---request begin---
GET / HTTP/1.1
User-Agent: Wget/1.19.5 (linux-gnu)
Accept: */*
Accept-Encoding: identity
Host: example.com
Connection: Keep-Alive

---request end---

你可以使用 --header 选项修改请求标头。实际上经常使用这种方式来模仿某特定浏览器,来测试或兼容某些编码糟糕、只能与特定代理通信的站点。

让请求被识别为来自 Windows 系统的 Microsoft Edge:

$ wget --debug --header="User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36 Edg/91.0.864.59" http://example.com

你也可以假装为某个移动设备:

$ wget --debug --header="User-Agent: Mozilla/5.0 (iPhone; CPU iPhone OS 13_5_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.1.1 Mobile/15E148 Safari/604.1" http://example.com

查看响应标头

与浏览器发送请求标头的方式一样,响应也包含有标头信息。你可以使用 --debug 选项来查看响应中的标头信息:

$ wget --debug example.com
[...]
---response begin---
HTTP/1.1 200 OK
Accept-Ranges: bytes
Age: 188102
Cache-Control: max-age=604800
Content-Type: text/html; charset=UTF-8
Etag: "3147526947"
Server: ECS (sab/574F)
Vary: Accept-Encoding
X-Cache: HIT
Content-Length: 1256

---response end---
200 OK
Registered socket 3 for persistent reuse.
URI content encoding = 'UTF-8'
Length: 1256 (1.2K) [text/html]
Saving to: 'index.html'

处理 301 响应

200 响应码意味着一切都在预料之中。而 301 响应则表示 URL 已经被永久迁移到了另外一个地方。这是站点管理员的一种常用手段,内容迁移后,为访问旧地址的用户留下寻找新地址的“线索”。wget 会默认跟随 重定向 redirect ,这也是大部分情况下用户所希望的。

当然,你可以使用 --max-redirect 选项,用于控制 wget 默认处理 301 响应重定向的次数。设置为 0 意味着不会自动重定向到新的地址:

$ wget --max-redirect 0 http://iana.org
--2021-09-21 11:01:35-- http://iana.org/
Resolving iana.org... 192.0.43.8, 2001:500:88:200::8
Connecting to iana.org|192.0.43.8|:80... connected.
HTTP request sent, awaiting response... 301 Moved Permanently
Location: https://www.iana.org/ [following]
0 redirections exceeded.

同时,你也可以设置为其他的数值来控制 wget 能重定向多少次。

展开 URL 缩写

使用--max-redirect 选项用于在实际访问之前查看 URL 缩写 shortened URL 非常有用。缩写 URL 可用于用户无法完整拷贝和粘贴一个长 URL 时的 印刷媒体 print media ,或是具有字数限制的社交网络(在类似 Mastondon 这种现代开源的社交网络上这并不是一个问题)。这种缩写具有一定的风险,因为本质上这些目的地是隐藏的。组合使用 --head 选项和 --location 选项来来查看 HTTP 头部并解开最终的目的地,你可以在不加载整个资源的情况下查看到缩写 URL 的完整内容:

$ wget --max-redirect 0 "https://bit.ly/2yDyS4T"
--2021-09-21 11:32:04-- https://bit.ly/2yDyS4T
Resolving bit.ly... 67.199.248.10, 67.199.248.11
Connecting to bit.ly|67.199.248.10|:443... connected.
HTTP request sent, awaiting response... 301 Moved Permanently
Location: http://example.com/ [following]
0 redirections exceeded.

Location 开始的倒数第二行输出,展示了实际的目的地。

使用 wget

若你开始考虑使用单个命令来实现整个网站访问的过程,wget 可以快速高效的帮你获取互联网上的信息,而不用在图形界面上耗费精力。为了帮你将它构造在你平常的工作流中,我们创建了一个 wget 常用使用方式和语法清单,包括使用它来查询 API 的概述。在这里下载 Linux wget 速查表


来源: https://opensource.com/article/21/10/linux-wget-command

作者:Seth Kenlon 选题:lujun9972 译者:zengyi1001 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

调试 Web 服务器的一种方法是使用 wget 命令行程序。

 title=

有时在管理一个网站时,事情会被搞得一团糟。你可能会删除一些陈旧的内容,用重定向到其他页面来代替。后来,在做了其他改动后,你发现一些网页变得完全无法访问了。你可能会在浏览器中看到一个错误:“该页面没有正确重定向”,并建议你检查你的 cookie。

 title=

调试这种情况的一个方法是使用 wget 命令行程序,使用 -S 选项来显示所有的服务器响应。当使用 wget 进行调试时,我也喜欢使用 -O 选项将输出保存到一些临时文件中,以备以后需要查看其内容。

$ wget -O /tmp/test.html -S http://10.0.0.11/announce/
--2021-08-24 17:09:49--  http://10.0.0.11/announce/
Connecting to 10.0.0.11:80... connected.

HTTP request sent, awaiting response... 

HTTP/1.1 302 Found
Date: Tue, 24 Aug 2021 22:09:49 GMT
Server: Apache/2.4.48 (Fedora)
X-Powered-By: PHP/7.4.21
Location: http://10.0.0.11/assets/
Content-Length: 0
Keep-Alive: timeout=5, max=100
Connection: Keep-Alive
Content-Type: text/html; charset=UTF-8
Location: http://10.0.0.11/assets/ [following]
--2021-08-24 17:09:49--  http://10.0.0.11/assets/
Reusing existing connection to 10.0.0.11:80.

HTTP request sent, awaiting response... 
 
HTTP/1.1 302 Found
Date: Tue, 24 Aug 2021 22:09:49 GMT
Server: Apache/2.4.48 (Fedora)
X-Powered-By: PHP/7.4.21
Location: http://10.0.0.11/announce/
Content-Length: 0
Keep-Alive: timeout=5, max=99
Connection: Keep-Alive
Content-Type: text/html; charset=UTF-8
Location: http://10.0.0.11/announce/ [following]
--2021-08-24 17:09:49--  http://10.0.0.11/announce/
Reusing existing connection to 10.0.0.11:80.
.
.
.
20 redirections exceeded.

我在这个输出中省略了很多重复的内容。通过阅读服务器的响应,你可以看到 http://10.0.0.11/announce/ 立即重定向到 http://10.0.0.11/assets/,然后又重定向到 http://10.0.0.11/announce/。以此类推。这是一个无休止的循环,wget 将在 20 次重定向后退出。但有了这些调试信息,你可以修复重定向,避免循环。


via: https://opensource.com/article/21/9/wget-debug-web-server

作者:Jim Hall 选题:lujun9972 译者:geekpi 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

大多数时间我们会使用 curl 命令或是 wget 命令下载文件或者做其他事。

我们以前曾写过 最佳命令行下载管理器 的文章。你可以点击相应的 URL 连接来浏览这些文章。

今天我们将讨论同样的话题。这个实用程序名为 HTTPie。

它是现代命令行 http 客户端,也是 curlwget 命令的最佳替代品。

什么是 HTTPie?

HTTPie (发音是 aitch-tee-tee-pie) 是一个 HTTP 命令行客户端。

HTTPie 工具是现代的 HTTP 命令行客户端,它能通过命令行界面与 Web 服务进行交互。

它提供一个简单的 http 命令,允许使用简单而自然的语法发送任意的 HTTP 请求,并会显示彩色的输出。

HTTPie 能用于测试、调试及与 HTTP 服务器交互。

主要特点

  • 具表达力的和直观语法
  • 格式化的及彩色化的终端输出
  • 内置 JSON 支持
  • 表单和文件上传
  • HTTPS、代理和认证
  • 任意请求数据
  • 自定义头部
  • 持久化会话
  • 类似 wget 的下载
  • 支持 Python 2.7 和 3.x

在 Linux 下如何安装 HTTPie

大部分 Linux 发行版都提供了系统包管理器,可以用它来安装。

Fedora 系统,使用 DNF 命令 来安装 httpie:

$ sudo dnf install httpie

Debian/Ubuntu 系统,使用 APT-GET 命令APT 命令 来安装 HTTPie。

$ sudo apt install httpie

基于 Arch Linux 的系统,使用 Pacman 命令 来安装 HTTPie。

$ sudo pacman -S httpie

RHEL/CentOS 的系统,使用 YUM 命令 来安装 HTTPie。

$ sudo yum install httpie

openSUSE Leap 系统,使用 Zypper 命令 来安装 HTTPie。

$ sudo zypper install httpie

用法

如何使用 HTTPie 请求 URL?

HTTPie 的基本用法是将网站的 URL 作为参数。

# http 2daygeek.com
HTTP/1.1 301 Moved Permanently
CF-RAY: 4c4a618d0c02ce6d-LHR
Cache-Control: max-age=3600
Connection: keep-alive
Date: Tue, 09 Apr 2019 06:21:28 GMT
Expires: Tue, 09 Apr 2019 07:21:28 GMT
Location: https://2daygeek.com/
Server: cloudflare
Transfer-Encoding: chunked
Vary: Accept-Encoding

如何使用 HTTPie 下载文件

你可以使用带 --download 参数的 HTTPie 命令下载文件。类似于 wget 命令。

# http --download https://www.2daygeek.com/wp-content/uploads/2019/04/Anbox-Easy-Way-To-Run-Android-Apps-On-Linux.png
HTTP/1.1 200 OK
Accept-Ranges: bytes
CF-Cache-Status: HIT
CF-RAY: 4c4a65d5ca360a66-LHR
Cache-Control: public, max-age=7200
Connection: keep-alive
Content-Length: 32066
Content-Type: image/png
Date: Tue, 09 Apr 2019 06:24:23 GMT
Expect-CT: max-age=604800, report-uri="https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct"
Expires: Tue, 09 Apr 2019 08:24:23 GMT
Last-Modified: Mon, 08 Apr 2019 04:54:25 GMT
Server: cloudflare
Set-Cookie: __cfduid=dd2034b2f95ae42047e082f59f2b964f71554791063; expires=Wed, 08-Apr-20 06:24:23 GMT; path=/; domain=.2daygeek.com; HttpOnly; Secure
Vary: Accept-Encoding

Downloading 31.31 kB to "Anbox-Easy-Way-To-Run-Android-Apps-On-Linux.png"
Done. 31.31 kB in 0.01187s (2.58 MB/s)

你还可以使用 -o 参数用不同的名称保存输出文件。

# http --download https://www.2daygeek.com/wp-content/uploads/2019/04/Anbox-Easy-Way-To-Run-Android-Apps-On-Linux.png -o Anbox-1.png
HTTP/1.1 200 OK
Accept-Ranges: bytes
CF-Cache-Status: HIT
CF-RAY: 4c4a68194daa0a66-LHR
Cache-Control: public, max-age=7200
Connection: keep-alive
Content-Length: 32066
Content-Type: image/png
Date: Tue, 09 Apr 2019 06:25:56 GMT
Expect-CT: max-age=604800, report-uri="https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct"
Expires: Tue, 09 Apr 2019 08:25:56 GMT
Last-Modified: Mon, 08 Apr 2019 04:54:25 GMT
Server: cloudflare
Set-Cookie: __cfduid=d3eea753081690f9a2d36495a74407dd71554791156; expires=Wed, 08-Apr-20 06:25:56 GMT; path=/; domain=.2daygeek.com; HttpOnly; Secure
Vary: Accept-Encoding

Downloading 31.31 kB to "Anbox-1.png"
Done. 31.31 kB in 0.01551s (1.97 MB/s)

如何使用 HTTPie 恢复部分下载?

你可以使用带 -c 参数的 HTTPie 继续下载。

# http --download --continue https://speed.hetzner.de/100MB.bin -o 100MB.bin
HTTP/1.1 206 Partial Content
Connection: keep-alive
Content-Length: 100442112
Content-Range: bytes 4415488-104857599/104857600
Content-Type: application/octet-stream
Date: Tue, 09 Apr 2019 06:32:52 GMT
ETag: "5253f0fd-6400000"
Last-Modified: Tue, 08 Oct 2013 11:48:13 GMT
Server: nginx
Strict-Transport-Security: max-age=15768000; includeSubDomains

Downloading 100.00 MB to "100MB.bin"
 |  24.14 %   24.14 MB    1.12 MB/s  0:01:07 ETA^C

你根据下面的输出验证是否同一个文件:

[email protected]:/var/log# ls -lhtr 100MB.bin
-rw-r--r-- 1 root root 25M Apr  9 01:33 100MB.bin

如何使用 HTTPie 上传文件?

你可以通过使用带有小于号 < 的 HTTPie 命令上传文件

$ http https://transfer.sh < Anbox-1.png

如何使用带有重定向符号 > 下载文件?

你可以使用带有重定向 > 符号的 HTTPie 命令下载文件。

# http https://www.2daygeek.com/wp-content/uploads/2019/03/How-To-Install-And-Enable-Flatpak-Support-On-Linux-1.png > Flatpak.png

# ls -ltrh Flatpak.png
-rw-r--r-- 1 root root 47K Apr  9 01:44 Flatpak.png

发送一个 HTTP GET 请求?

您可以在请求中发送 HTTP GET 方法。GET 方法会使用给定的 URI,从给定服务器检索信息。

# http GET httpie.org
HTTP/1.1 301 Moved Permanently
CF-RAY: 4c4a83a3f90dcbe6-SIN
Cache-Control: max-age=3600
Connection: keep-alive
Date: Tue, 09 Apr 2019 06:44:44 GMT
Expires: Tue, 09 Apr 2019 07:44:44 GMT
Location: https://httpie.org/
Server: cloudflare
Transfer-Encoding: chunked
Vary: Accept-Encoding

提交表单?

使用以下格式提交表单。POST 请求用于向服务器发送数据,例如客户信息、文件上传等。要使用 HTML 表单。

# http -f POST Ubuntu18.2daygeek.com hello='World'
HTTP/1.1 200 OK
Accept-Ranges: bytes
Connection: Keep-Alive
Content-Encoding: gzip
Content-Length: 3138
Content-Type: text/html
Date: Tue, 09 Apr 2019 06:48:12 GMT
ETag: "2aa6-5844bf1b047fc-gzip"
Keep-Alive: timeout=5, max=100
Last-Modified: Sun, 17 Mar 2019 15:29:55 GMT
Server: Apache/2.4.29 (Ubuntu)
Vary: Accept-Encoding

运行下面的指令以查看正在发送的请求。

# http -v Ubuntu18.2daygeek.com
GET / HTTP/1.1
Accept: */*
Accept-Encoding: gzip, deflate
Connection: keep-alive
Host: ubuntu18.2daygeek.com
User-Agent: HTTPie/0.9.8

hello=World

HTTP/1.1 200 OK
Accept-Ranges: bytes
Connection: Keep-Alive
Content-Encoding: gzip
Content-Length: 3138
Content-Type: text/html
Date: Tue, 09 Apr 2019 06:48:30 GMT
ETag: "2aa6-5844bf1b047fc-gzip"
Keep-Alive: timeout=5, max=100
Last-Modified: Sun, 17 Mar 2019 15:29:55 GMT
Server: Apache/2.4.29 (Ubuntu)
Vary: Accept-Encoding

HTTP 认证?

当前支持的身份验证认证方案是基本认证(Basic)和摘要验证(Digest)。

基本认证:

$ http -a username:password example.org

摘要验证:

$ http -A digest -a username:password example.org

提示输入密码:

$ http -a username example.org

via: https://www.2daygeek.com/httpie-curl-wget-alternative-http-client-linux/

作者:Magesh Maruthamuthu 选题:lujun9972 译者:zgj1024 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

当想要直接通过 Linux 命令行下载文件,马上就能想到两个工具:wget 和 cURL。它们有很多一样的特征,可以很轻易的完成一些相同的任务。

虽然它们有一些相似的特征,但它们并不是完全一样。这两个程序适用与不同的场合,在特定场合下,都拥有各自的特性。

cURL vs wget: 相似之处

wget 和 cURL 都可以下载内容。它们的核心就是这么设计的。它们都可以向互联网发送请求并返回请求项。这可以是文件、图片或者是其他诸如网站的原始 HTML 之类。

这两个程序都可以进行 HTTP POST 请求。这意味着它们都可以向网站发送数据,比如说填充表单什么的。

由于这两者都是命令行工具,它们都被设计成可脚本化。wget 和 cURL 都可以写进你的 Bash 脚本 ,自动与新内容交互,下载所需内容。

wget 的优势

 title=

wget 简单直接。这意味着你能享受它超凡的下载速度。wget 是一个独立的程序,无需额外的资源库,更不会做其范畴之外的事情。

wget 是专业的直接下载程序,支持递归下载。同时,它也允许你下载网页中或是 FTP 目录中的任何内容。

wget 拥有智能的默认设置。它规定了很多在常规浏览器里的事物处理方式,比如 cookies 和重定向,这都不需要额外的配置。可以说,wget 简直就是无需说明,开罐即食!

cURL 优势

 title=

cURL是一个多功能工具。当然,它可以下载网络内容,但同时它也能做更多别的事情。

cURL 技术支持库是:libcurl。这就意味着你可以基于 cURL 编写整个程序,允许你基于 libcurl 库中编写图形环境的下载程序,访问它所有的功能。

cURL 宽泛的网络协议支持可能是其最大的卖点。cURL 支持访问 HTTP 和 HTTPS 协议,能够处理 FTP 传输。它支持 LDAP 协议,甚至支持 Samba 分享。实际上,你还可以用 cURL 收发邮件。

cURL 也有一些简洁的安全特性。cURL 支持安装许多 SSL/TLS 库,也支持通过网络代理访问,包括 SOCKS。这意味着,你可以越过 Tor 来使用cURL。

cURL 同样支持让数据发送变得更容易的 gzip 压缩技术。

思考总结

那你应该使用 cURL 还是使用 wget?这个比较得看实际用途。如果你想快速下载并且没有担心参数标识的需求,那你应该使用轻便有效的 wget。如果你想做一些更复杂的使用,直觉告诉你,你应该选择 cRUL。

cURL 支持你做很多事情。你可以把 cURL 想象成一个精简的命令行网页浏览器。它支持几乎你能想到的所有协议,可以交互访问几乎所有在线内容。唯一和浏览器不同的是,cURL 不会渲染接收到的相应信息。


via: https://www.maketecheasier.com/curl-vs-wget/

作者:Nick Congleton 译者:CYLeft 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

任何没有下载管理器的 Linux 操作系统是不完整的。多年来,基于 Linux 的发行版使用 wget 作为默认下载管理器。它是一个很棒的小程序,可以在命令行下工作,如果你需要安装东西、下载东西、运行 shell 脚本等,某种程度上都可以在 wget 中完成任务。在过去的很多年里,我们发现 wget 缺乏一些高级的功能,而它的替代品 aria2 ,由于满足了高级 Linux 用户的渴望而受到了许多用户的关注。我们将在本文中回顾 aria2 的安装过程以及 wget 和 aria2 之间的区别,因此你可以决定哪个下载管理器最符合你的需要。

安装 aria2

在 Ubuntu/Debian 中安装 aria2:

只要在 Ubuntu 中运行下面的命令安装:

sudo apt-get install aria2

aria2

在 Fedora/RHEL/Centos 中安装 aria2:

运行下面的命令在 Fedora/RHEL 和基于 Centos 的系统中安装:

sudo yum install aria2

在 Arch Linux 中安装 aria2:

运行下面的命令在基于 Arch Linux 的系统中安装。

sudo pacman -Sy aria2

aria2 的重要功能

让我们来讨论 aria2 中使它如此受欢迎的重要功能:

  • 通过使用多个连接下载文件,最大限度地利用可用带宽。
  • 同时下载多个文件和同时下载的能力。
  • torrent 客户端提供的所有功能都可以在这个小程序中找到。
  • 它提供 meta 链接下载。
  • 支持使用 JSON-RPC 和 XML-RPC 协议的远程过程调用。
  • 无需等待当前下载完成,轻松批量下载文件。

aria2 的一些副作用:

aria2 的多线程机制可能会使目标服务器过载。相比下来 wget 就轻量级多了,wget 比 aria2 消耗资源少 20%。aria2 尚未经受 wget 那样巨大的使用规模的测试,因此可能完全准备好成为默认下载管理器。

wget 的重要特性

  • 当然它是最广泛使用和测试的下载管理器。
  • 它是一个简单的程序,具有较少的功能,但稳定工作了几十年。
  • 默认所有 Linux 发行版上都有,不需要繁重的安装。
  • 与 aria2 相比更轻量级。

总结

虽然 wget 没有丰富的功能,但仍然工作得相当不错,然而,高级用户肯定会喜欢 aria2,因为它满足更快和并发下载的需要。aria2 可能需要很长时间来取代 wget 成为默认下载管理器,而目前 wget 用在几乎所有 linux 发行版的安装程序脚本中。


via: http://linuxpitstop.com/aria-2-vs-wget/

作者:Aun 译者:geekpi 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出