介绍
在本实验中,你将学习如何使用两种常见的命令行工具从互联网下载文件:curl 和 wget。这些工具对于从 Web 服务器检索文件和数据至关重要,是任何 Linux 用户或开发人员都应掌握的宝贵技能。
curl 是一种多功能工具,可以从各种协议下载文件并执行 HTTP 请求。wget 是一种更简单的工具,主要用于从 Web 服务器下载文件。通过本实验的学习,你将能够熟练使用这两种工具下载文件并执行基本的 HTTP 请求。
使用 curl 下载文件
让我们从使用 curl 下载一个简单的 HTML 文件开始。
打开终端。
导航到项目目录。在终端中输入以下命令:
cd /home/labex/project
该命令将当前目录更改为 /home/labex/project。cd 命令代表 "change directory"(更改目录)。
- 现在,让我们使用
curl下载一个网页。输入以下命令:
curl http://example.com -o example.html
让我们分解这个命令:
curl是我们使用的程序名称http://example.com是我们要下载的网页的 URL-o example.html告诉curl将下载的内容保存到名为example.html的文件中。-o选项代表 "output"(输出)。
- 运行命令后,
curl将下载内容并将其保存为当前目录中的example.html。为了验证文件是否已下载,我们可以列出目录内容:
ls -l example.html
ls 命令用于列出文件和目录。-l 选项为我们提供了详细(长)的列表。你应该在输出中看到 example.html,以及有关其大小和最后修改时间的信息。
检查下载的文件
现在我们已经下载了文件,让我们查看其内容。
- 要显示文件的内容,我们可以使用
cat命令。输入以下命令:
cat example.html
cat 代表 "concatenate"(连接),但它通常用于显示文件内容。你应该会看到 example.com 主页的 HTML 内容。如果你不熟悉 HTML,这可能会看起来像一堆杂乱的文本,但不用担心——这是 Web 浏览器用来显示网页的原始代码。
- 有时,文件可能非常大,而我们可能只想查看开头部分。为此,我们可以使用
head命令:
head -n 10 example.html
该命令显示文件的前 10 行。-n 10 选项告诉 head 显示 10 行。你可以更改此数字以查看更多或更少的行。
- 要查看文件的末尾部分,你可以使用
tail命令:
tail -n 10 example.html
这将显示文件的最后 10 行。
这些命令对于快速检查文件内容非常有用,尤其是在处理大文件时,无需完全打开文件。
使用 curl 下载多个文件
curl 可以在单个命令中下载多个文件。让我们尝试同时下载两个文件。
- 首先,尝试从
example.com下载首页和关于页面并显示它们的内容:
curl http://example.com/index.html http://example.com/about.html
该命令会将两个页面的内容输出到终端。你会看到两个 HTML 文档依次打印出来。这对于快速检查很有用,但如果你想保存文件,这并不是理想的方式。
- 要保存这些文件而不是显示它们,我们可以使用
-O选项。大写的-O告诉curl使用 URL 中的文件名:
curl -O http://example.com/index.html -O http://example.com/about.html
该命令会下载这两个文件,并将它们以原始文件名(index.html 和 about.html)保存到当前目录中。这次你不会看到内容打印到终端。
- 为了验证文件是否已下载,我们可以列出目录内容:
ls -l index.html about.html
你应该会看到列出的两个文件,以及它们的大小和最后修改时间。
- 如果你想下载多个文件但为它们指定自定义名称,可以使用多个
-o选项:
curl -o custom_index.html http://example.com/index.html -o custom_about.html http://example.com/about.html
这会将文件保存为 custom_index.html 和 custom_about.html。
使用 wget 下载文件
现在让我们探索另一个流行的文件下载工具 wget。wget 因其简单性和处理大文件下载或不稳定连接的能力而备受青睐。
- 首先,使用
wget从 example.com 下载一个文件:
wget http://example.com/index.html
wget 会在下载文件时显示进度条。这对于较大的文件特别有用,因为你可以查看文件的下载进度以及完成下载可能需要的时间。
- 默认情况下,
wget会以原始文件名保存文件。要指定不同的文件名,请使用-O选项(注意这是大写的 O,与curl使用的小写 o 不同):
wget -O custom_name.html http://example.com/index.html
这会将文件保存为 custom_name.html。进度条仍然会显示,但文件将以你指定的名称保存。
将文件下载到特定目录
通常,你可能希望将文件下载到特定目录,而不是当前工作目录。curl 和 wget 都支持此功能,但它们使用的方法不同。
- 首先,让我们创建一个新目录来存放下载的文件:
mkdir downloads
这会在当前位置创建一个名为 downloads 的新目录。
- 现在,使用
curl将文件下载到此目录:
curl -o downloads/curl_file.html http://example.com
curl 的 -o 选项允许我们指定输出文件,包括其路径。此命令从 example.com 下载内容并将其保存为 downloads 目录中的 curl_file.html。
- 接下来,使用
wget将文件下载到同一目录:
wget -P downloads http://example.com/index.html
wget 的 -P 选项代表 "prefix"(前缀),允许我们指定保存文件的目录。此命令从 example.com 下载 index.html 并将其保存到 downloads 目录中。
- 我们可以验证这两个文件是否已下载到
downloads目录:
ls -l downloads
你应该在输出中看到 curl_file.html 和 index.html。
- 要在不更改当前目录的情况下查看这些文件的内容,我们可以使用
cat并指定完整路径:
cat downloads/curl_file.html
cat downloads/index.html
这允许我们验证下载文件的内容。
总结
恭喜!你已经成功完成了使用 curl 和 wget 从互联网下载文件的实验。让我们回顾一下你学到的内容:
- 你使用
curl下载单个文件并以自定义名称保存它们。 - 你探索了如何使用单个
curl命令下载多个文件。 - 你学会了如何使用
wget下载文件,包括使用默认名称和自定义名称。 - 你练习了使用
wget递归下载文件。 - 你学会了如何使用
curl和wget将文件下载到特定目录。
这些技能对于 Linux 中的许多任务至关重要,从检索网页内容到下载软件包。随着你在 Linux 中的深入学习,你会发现这些工具在各种脚本编写和自动化任务中非常有用。
请记住,curl 和 wget 还有许多其他选项和功能可以探索。你可以随时查看它们的手册页(man curl 和 man wget)以了解更多高级功能。
继续练习和探索这些工具,以便在 Linux 中更熟练地处理文件和网页内容!



