介绍
在本实验中,你将学习如何使用两种常见的命令行工具从互联网下载文件:curl
和 wget
。这些工具对于从 Web 服务器检索文件和数据至关重要,是任何 Linux 用户或开发人员都应掌握的宝贵技能。
curl
是一种多功能工具,可以从各种协议下载文件并执行 HTTP 请求。wget
是一种更简单的工具,主要用于从 Web 服务器下载文件。通过本实验的学习,你将能够熟练使用这两种工具下载文件并执行基本的 HTTP 请求。
在本实验中,你将学习如何使用两种常见的命令行工具从互联网下载文件:curl
和 wget
。这些工具对于从 Web 服务器检索文件和数据至关重要,是任何 Linux 用户或开发人员都应掌握的宝贵技能。
curl
是一种多功能工具,可以从各种协议下载文件并执行 HTTP 请求。wget
是一种更简单的工具,主要用于从 Web 服务器下载文件。通过本实验的学习,你将能够熟练使用这两种工具下载文件并执行基本的 HTTP 请求。
让我们从使用 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
可以在单个命令中下载多个文件。让我们尝试同时下载两个文件。
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
从 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 中更熟练地处理文件和网页内容!