从互联网下载文件

LinuxLinuxBeginner
立即练习

💡 本教程由 AI 辅助翻译自英文原版。如需查看原文,您可以 切换至英文原版

介绍

在本实验中,你将学习如何使用两种常见的命令行工具从互联网下载文件:curlwget。这些工具对于从 Web 服务器检索文件和数据至关重要,是任何 Linux 用户或开发人员都应掌握的宝贵技能。

curl 是一种多功能工具,可以从各种协议下载文件并执行 HTTP 请求。wget 是一种更简单的工具,主要用于从 Web 服务器下载文件。通过本实验的学习,你将能够熟练使用这两种工具下载文件并执行基本的 HTTP 请求。


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL linux(("Linux")) -.-> linux/PackagesandSoftwaresGroup(["Packages and Softwares"]) linux(("Linux")) -.-> linux/BasicFileOperationsGroup(["Basic File Operations"]) linux(("Linux")) -.-> linux/FileandDirectoryManagementGroup(["File and Directory Management"]) linux/BasicFileOperationsGroup -.-> linux/ls("Content Listing") linux/BasicFileOperationsGroup -.-> linux/mv("File Moving/Renaming") linux/BasicFileOperationsGroup -.-> linux/cat("File Concatenating") linux/BasicFileOperationsGroup -.-> linux/less("File Paging") linux/FileandDirectoryManagementGroup -.-> linux/cd("Directory Changing") linux/FileandDirectoryManagementGroup -.-> linux/mkdir("Directory Creating") linux/PackagesandSoftwaresGroup -.-> linux/curl("URL Data Transferring") linux/PackagesandSoftwaresGroup -.-> linux/wget("Non-interactive Downloading") subgraph Lab Skills linux/ls -.-> lab-387333{{"从互联网下载文件"}} linux/mv -.-> lab-387333{{"从互联网下载文件"}} linux/cat -.-> lab-387333{{"从互联网下载文件"}} linux/less -.-> lab-387333{{"从互联网下载文件"}} linux/cd -.-> lab-387333{{"从互联网下载文件"}} linux/mkdir -.-> lab-387333{{"从互联网下载文件"}} linux/curl -.-> lab-387333{{"从互联网下载文件"}} linux/wget -.-> lab-387333{{"从互联网下载文件"}} end

使用 curl 下载文件

让我们从使用 curl 下载一个简单的 HTML 文件开始。

  1. 打开终端。

  2. 导航到项目目录。在终端中输入以下命令:

cd /home/labex/project

该命令将当前目录更改为 /home/labex/projectcd 命令代表 "change directory"(更改目录)。

  1. 现在,让我们使用 curl 下载一个网页。输入以下命令:
curl http://example.com -o example.html

让我们分解这个命令:

  • curl 是我们使用的程序名称
  • http://example.com 是我们要下载的网页的 URL
  • -o example.html 告诉 curl 将下载的内容保存到名为 example.html 的文件中。-o 选项代表 "output"(输出)。
  1. 运行命令后,curl 将下载内容并将其保存为当前目录中的 example.html。为了验证文件是否已下载,我们可以列出目录内容:
ls -l example.html

ls 命令用于列出文件和目录。-l 选项为我们提供了详细(长)的列表。你应该在输出中看到 example.html,以及有关其大小和最后修改时间的信息。

检查下载的文件

现在我们已经下载了文件,让我们查看其内容。

  1. 要显示文件的内容,我们可以使用 cat 命令。输入以下命令:
cat example.html

cat 代表 "concatenate"(连接),但它通常用于显示文件内容。你应该会看到 example.com 主页的 HTML 内容。如果你不熟悉 HTML,这可能会看起来像一堆杂乱的文本,但不用担心——这是 Web 浏览器用来显示网页的原始代码。

  1. 有时,文件可能非常大,而我们可能只想查看开头部分。为此,我们可以使用 head 命令:
head -n 10 example.html

该命令显示文件的前 10 行。-n 10 选项告诉 head 显示 10 行。你可以更改此数字以查看更多或更少的行。

  1. 要查看文件的末尾部分,你可以使用 tail 命令:
tail -n 10 example.html

这将显示文件的最后 10 行。

这些命令对于快速检查文件内容非常有用,尤其是在处理大文件时,无需完全打开文件。

使用 curl 下载多个文件

curl 可以在单个命令中下载多个文件。让我们尝试同时下载两个文件。

  1. 首先,尝试从 example.com 下载首页和关于页面并显示它们的内容:
curl http://example.com/index.html http://example.com/about.html

该命令会将两个页面的内容输出到终端。你会看到两个 HTML 文档依次打印出来。这对于快速检查很有用,但如果你想保存文件,这并不是理想的方式。

  1. 要保存这些文件而不是显示它们,我们可以使用 -O 选项。大写的 -O 告诉 curl 使用 URL 中的文件名:
curl -O http://example.com/index.html -O http://example.com/about.html

该命令会下载这两个文件,并将它们以原始文件名(index.htmlabout.html)保存到当前目录中。这次你不会看到内容打印到终端。

  1. 为了验证文件是否已下载,我们可以列出目录内容:
ls -l index.html about.html

你应该会看到列出的两个文件,以及它们的大小和最后修改时间。

  1. 如果你想下载多个文件但为它们指定自定义名称,可以使用多个 -o 选项:
curl -o custom_index.html http://example.com/index.html -o custom_about.html http://example.com/about.html

这会将文件保存为 custom_index.htmlcustom_about.html

使用 wget 下载文件

现在让我们探索另一个流行的文件下载工具 wgetwget 因其简单性和处理大文件下载或不稳定连接的能力而备受青睐。

  1. 首先,使用 wget 从 example.com 下载一个文件:
wget http://example.com/index.html

wget 会在下载文件时显示进度条。这对于较大的文件特别有用,因为你可以查看文件的下载进度以及完成下载可能需要的时间。

  1. 默认情况下,wget 会以原始文件名保存文件。要指定不同的文件名,请使用 -O 选项(注意这是大写的 O,与 curl 使用的小写 o 不同):
wget -O custom_name.html http://example.com/index.html

这会将文件保存为 custom_name.html。进度条仍然会显示,但文件将以你指定的名称保存。

将文件下载到特定目录

通常,你可能希望将文件下载到特定目录,而不是当前工作目录。curlwget 都支持此功能,但它们使用的方法不同。

  1. 首先,让我们创建一个新目录来存放下载的文件:
mkdir downloads

这会在当前位置创建一个名为 downloads 的新目录。

  1. 现在,使用 curl 将文件下载到此目录:
curl -o downloads/curl_file.html http://example.com

curl-o 选项允许我们指定输出文件,包括其路径。此命令从 example.com 下载内容并将其保存为 downloads 目录中的 curl_file.html

  1. 接下来,使用 wget 将文件下载到同一目录:
wget -P downloads http://example.com/index.html

wget-P 选项代表 "prefix"(前缀),允许我们指定保存文件的目录。此命令从 example.com 下载 index.html 并将其保存到 downloads 目录中。

  1. 我们可以验证这两个文件是否已下载到 downloads 目录:
ls -l downloads

你应该在输出中看到 curl_file.htmlindex.html

  1. 要在不更改当前目录的情况下查看这些文件的内容,我们可以使用 cat 并指定完整路径:
cat downloads/curl_file.html
cat downloads/index.html

这允许我们验证下载文件的内容。

总结

恭喜!你已经成功完成了使用 curlwget 从互联网下载文件的实验。让我们回顾一下你学到的内容:

  1. 你使用 curl 下载单个文件并以自定义名称保存它们。
  2. 你探索了如何使用单个 curl 命令下载多个文件。
  3. 你学会了如何使用 wget 下载文件,包括使用默认名称和自定义名称。
  4. 你练习了使用 wget 递归下载文件。
  5. 你学会了如何使用 curlwget 将文件下载到特定目录。

这些技能对于 Linux 中的许多任务至关重要,从检索网页内容到下载软件包。随着你在 Linux 中的深入学习,你会发现这些工具在各种脚本编写和自动化任务中非常有用。

请记住,curlwget 还有许多其他选项和功能可以探索。你可以随时查看它们的手册页(man curlman wget)以了解更多高级功能。

继续练习和探索这些工具,以便在 Linux 中更熟练地处理文件和网页内容!