本文将讨论如何使用命令行在 Ubuntu Linux 上下载文件。 我们将介绍四种可用于完成此任务的不同方法:wget、cURL、w3m 和 elinks。 每种方法都有其优点和缺点,我们将详细介绍。
目录
1. 使用 cURL 下载文件
cURL 是一个命令行工具,可用于从 Internet 下载文件。 它与Wget非常相似,支持HTTP、HTTPS、FTP等多种协议。 此外,cURL 还允许用户在 Internet 上上传文件,这是 Wget 无法做到的。
然而,它的主要缺点之一是它没有任何用于递归下载的内置功能,这意味着如果你想从一个网站下载所有文件,你将不得不一次只下载一个文件。
卷曲的好处
使用命令行而不是图形用户界面 (GUI) 下载文件有很多好处。 一方面,它通常更快、更高效。 它也可以是脚本化的或自动化的,如果您需要下载多个文件,可以节省时间。 最后,有些人只是更喜欢在终端中工作。
有关详细信息,请阅读:How to download a file using cURL on Linux?
如何安装卷曲?
与 Wget 一样,cURL 也预装在许多 Linux 发行版中,但如果您的系统上未安装它,请打开 Ubuntu Dash 或只需按 Ctrl+Alt+T 快捷键并输入以下命令:
$ sudo apt install curl
如果你正在使用 Fedora 然后在终端中输入此命令:
$ yum install curl
卷曲的特点
cURL 为用户提供了各种功能,其中一些已在下面讨论:
1) 默认情况下,cURL 将所有下载的文件保存到当前工作目录中,但可以通过使用 -o 选项提供特定的输出目录来更改此行为,后跟所需的路径,如下所示:
$ curl -o /path/to/directory URL
2) 如果我们想要更多关于传输过程中发生的事情的信息,那么我们可以像这样使用 –v 选项:
$ curl –v URL
-v 只是增加了详细程度,因此您可以看到有关正在发生的传输的更多信息。

3) cURL 提供的另一个有趣的功能允许我们阻止来自我们不希望流量进入的 IP 地址。
我们称之为限制每个 IP 地址的最大同时连接数,它可以防止恶意脚本或爬虫一次发出过多请求而导致服务器过载。
$ curl --limit-rate 200k --max-redirs 0 https://example.com
4) 最后,如果有人想要标题信息和文件内容,那么他们不需要去任何其他地方,因为 cURL 为我们提供了 –I 选项来做完全相同的事情
$ curl –I URL

有关其他可用选项和使用语法的更多详细信息,用户可以通过在终端中输入以下命令来访问与 cURL 相关的手册页:
$ man curl
2.使用wget下载文件
Wget 是另一个命令行工具,可用于从 Internet 下载文件。 它在 Linux 用户中非常流行,并且已经存在了很长时间。 Wget支持HTTP、HTTPS、FTP等多种协议。 与 cURL 相比,它的主要优势之一是它可以执行递归下载,这意味着它可以一次性下载整个网站及其所有文件和子目录。
如何安装wget?
与 cURL 一样,Wget 也预装在许多 Linux 发行版中,但如果您的系统上未安装它,请打开 Ubuntu Dash 或只需按 Ctrl+Alt+T 快捷键并输入以下命令:
$ sudo apt install wget

如果你正在使用 Fedora 然后在终端中输入此命令:
$ yum install wget
请务必注意,这些安装命令仅适用于基于 Debian 的系统,例如 Ubuntu,而适用于 Red Hat 系统,例如 Fedora; 我们使用不同的命令。
wget的特点
wget 命令为用户提供了各种功能,其中一些已在下面讨论:
1) 与 cURL 一样,默认情况下,wGet 将所有下载的文件保存到当前工作目录中,但可以通过使用 -P 选项提供特定的输出目录来更改此行为,后跟所需的路径,如下所示:
$ wget -P /path/to/directory URL

2) 我们还可以通过 –output-document 选项更改正在下载的文件的名称,如下所示:
$wget --output-document=filename URL
这里的文件名是指为正在下载的文件指定的所需名称。 此选项将自动检测正在下载的文件类型并添加适当的扩展名,即 .jpg、.png 等。

3) 如果我们想要更多关于传输过程中发生的事情的信息,那么我们可以使用 –d 或 –debug 选项,如下所示:
$wget –d URL
或者
$wget –debug URL

4) Wget 提供的另一个有趣的功能允许我们阻止来自我们不希望流量进入的 IP 地址。我们称之为限制每个 IP 地址的最大同时连接数,它可以防止由恶意脚本或爬虫造成的服务器过载一次请求太多
$wget --limit-rate 200k https://example.com

5) 最后,如果有人想要标题信息和文件内容,那么他们不需要去任何其他地方,因为 WGET 为我们提供了 -S 或 –server-response 选项来做完全相同的事情
$wget -S URL
或者
$wget –server-response URL

有关其他可用选项和使用语法的更多详细信息,用户可以通过在终端中输入以下命令来访问与 WGET 相关的手册页:
$man wget
或者您可以访问官方网站 https://www.gnu.org/software/wget/。
3.使用w3m下载文件
w3m 是一种基于文本的 Web 浏览器,可用于从 Internet 下载文件。 支持HTTP、HTTPS、FTP等多种协议。 此外,它还具有查看图像的功能,可以在下载图像文件时派上用场。
如何安装w3m?
w3m 通常预装在大多数 Linux 发行版中,但如果您没有在系统上安装它,请打开 Ubuntu Dash 或简单地按 Ctrl+Alt+T 快捷键并输入以下命令:
sudo apt install w3m

w3m的特点
如前所述,它的主要功能之一是它允许我们转储网页上存在的所有链接,这有时非常有用。 除此之外,它还为我们提供了不同类型的输出格式选项,例如 HTML(-html)、PostScript(-ps) 等。
- 我们可以通过 -O 选项选择所需的输出格式,如下所示:
w3m -O postscript URL

- 我们还可以通过 > 运算符将所有下载的内容保存到一个文件中,如下所示:
$ w3m URL > filename

- 它没有任何用于递归下载的内置功能,但它确实允许用户通过提供 -dump 选项后跟 URL 来下载网页上存在的所有链接,如下所示:
$ w3m -dump URL

有关其他可用选项和使用语法的更多详细信息,用户可以通过在终端中输入以下命令来访问与 Wget 相关的手册页:
man w3m
四、 使用 elinks 下载文件
elinks 是另一种基于文本的 Web 浏览器,它支持多种协议,例如 HTTP、HTTPS 和 FTP,就像 Wget 和 cURL 一样。 然而,elinks 与这两者的不同之处在于它具有用于递归下载的内置功能,这意味着我们可以轻松地从网站下载所有文件,而不必一次只下载一个文件。
安装elinks
我们可以像这样使用 apt 命令安装 elink,
sudo apt install elinks

与 elink 交互
elinks 下载整个网站目录以显示在终端中。
通过使用以下命令,您可以轻松打开任何网站,
elinks <URL>
在我们的案例中,


有关其他可用选项和使用语法的更多详细信息,用户可以通过在终端中输入以下命令来访问与 elinks 相关的手册页:
man elinks
结论
总之,有很多方法可以使用命令行在 Ubuntu Linux 上下载文件。 每种方法都有其自身的优点和缺点,在选择一种方法之前应加以考虑。