如何使用命令行在 Ubuntu Linux 上下载文件

本文将讨论如何使用命令行在 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
这里 cURL 已经预装在我的系统中

如果你正在使用 Fedora 然后在终端中输入此命令:

$ yum install curl

卷曲的特点

cURL 为用户提供了各种功能,其中一些已在下面讨论:

1) 默认情况下,cURL 将所有下载的文件保存到当前工作目录中,但可以通过使用 -o 选项提供特定的输出目录来更改此行为,后跟所需的路径,如下所示:

$ curl -o /path/to/directory URL
使用 cURL -o 下载:这会将所有下载的文件保存到 /path/to/ 目录中

2) 如果我们想要更多关于传输过程中发生的事情的信息,那么我们可以像这样使用 –v 选项:

$ curl –v URL

-v 只是增加了详细程度,因此您可以看到有关正在发生的传输的更多信息。

图 46详细用法的示例 curl

3) cURL 提供的另一个有趣的功能允许我们阻止来自我们不希望流量进入的 IP 地址。

我们称之为限制每个 IP 地址的最大同时连接数,它可以防止恶意脚本或爬虫一次发出过多请求而导致服务器过载。

$ curl --limit-rate 200k --max-redirs 0 https://example.com

4) 最后,如果有人想要标题信息和文件内容,那么他​​们不需要去任何其他地方,因为 cURL 为我们提供了 –I 选项来做完全相同的事情

$ curl –I URL 
图 47标头信息使用 curl

有关其他可用选项和使用语法的更多详细信息,用户可以通过在终端中输入以下命令来访问与 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
图 48wget的安装

如果你正在使用 Fedora 然后在终端中输入此命令:

$ yum install wget

请务必注意,这些安装命令仅适用于基于 Debian 的系统,例如 Ubuntu,而适用于 Red Hat 系统,例如 Fedora; 我们使用不同的命令。

wget的特点

wget 命令为用户提供了各种功能,其中一些已在下面讨论:

1) 与 cURL 一样,默认情况下,wGet 将所有下载的文件保存到当前工作目录中,但可以通过使用 -P 选项提供特定的输出目录来更改此行为,后跟所需的路径,如下所示:

$ wget -P /path/to/directory URL 
图 49此命令会将所有下载的文件保存到 /home/dee/Desktop

2) 我们还可以通过 –output-document 选项更改正在下载的文件的名称,如下所示:

$wget --output-document=filename URL 

这里的文件名是指为正在下载的文件指定的所需名称。 此选项将自动检测正在下载的文件类型并添加适当的扩展名,即 .jpg、.png 等。

图 50wget 用所需的文件名保存文件

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

$wget –d URL 

或者

$wget –debug URL 
图 51带有调试选项的 wget

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

$wget --limit-rate 200k https://example.com
图 52使用 wget 的速率限制请求

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

$wget -S URL 

或者

$wget –server-response URL 
图 53使用wget的头信息

有关其他可用选项和使用语法的更多详细信息,用户可以通过在终端中输入以下命令来访问与 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
图 54w3m的安装

w3m的特点

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

  • 我们可以通过 -O 选项选择所需的输出格式,如下所示:
w3m -O postscript URL 
截图 2022 10 31 上午 10.53.26w3m的后记模式
  • 我们还可以通过 > 运算符将所有下载的内容保存到一个文件中,如下所示:
$ w3m URL > filename 
图 56下载到名为 1.jpg 的文件
  • 它没有任何用于递归下载的内置功能,但它确实允许用户通过提供 -dump 选项后跟 URL 来下载网页上存在的所有链接,如下所示:
$ w3m -dump URL
图 55facebook.com 的 w3m 转储

有关其他可用选项和使用语法的更多详细信息,用户可以通过在终端中输入以下命令来访问与 Wget 相关的手册页:

man w3m

四、 使用 elinks 下载文件

elinks 是另一种基于文本的 Web 浏览器,它支持多种协议,例如 HTTP、HTTPS 和 FTP,就像 Wget 和 cURL 一样。 然而,elinks 与这两者的不同之处在于它具有用于递归下载的内置功能,这意味着我们可以轻松地从网站下载所有文件,而不必一次只下载一个文件。

安装elinks

我们可以像这样使用 apt 命令安装 elink,

sudo apt install elinks
图 57elinks安装

与 elink 交互

elinks 下载整个网站目录以显示在终端中。

通过使用以下命令,您可以轻松打开任何网站,

elinks <URL>

在我们的案例中,

图 59此命令打开我们的网站 linuxfordevices.com
图 58elinks 打开 linux for devices 网站

有关其他可用选项和使用语法的更多详细信息,用户可以通过在终端中输入以下命令来访问与 elinks 相关的手册页:

man elinks 

结论

总之,有很多方法可以使用命令行在 Ubuntu Linux 上下载文件。 每种方法都有其自身的优点和缺点,在选择一种方法之前应加以考虑。