Linux 中的 curl 命令是什么,你可以用它做什么?

Linux 中的 curl 命令是自动化从服务器上传和下载数据的过程的好方法。 Curl 支持所有重要的协议,例如 HTTP、HTTPS、SFTP、FTP 等。

暂停和恢复传输、限制带宽、代理支持和用户身份验证等功能使其成为用于数据传输的完美命令行实用程序。

让我们深入探讨一下什么是 curl 以及如何使用它。

什么是 curl 命令?

Curl 最初开发用于定期从网页自动下载货币汇率。实时汇率为 IRC 用户提供了美元等值的瑞典克朗。随着人们开始使用其广泛的应用程序,curl 的受欢迎程度呈指数增长。

Curl 是有史以来最古老、最受欢迎的开源项目之一。该名称代表Client URL ,并在全球无数系统中使用。 Curl 可用于各种应用程序,例如 Web 开发和错误测试。

开发人员无需手动键入命令;他们可以将它们捆绑到脚本中并使用它们来自动化复杂的操作。下面是一些如何使用 curl 的示例。

在 Linux 上安装 curl

尽管大多数 Linux 发行版都预装了这个流行的软件包,但如果您的发行版中尚未安装 curl,您可以轻松下载它。使用以下命令在您的机器上安装 curl。

在 Ubuntu 和 Debian 上:

 sudo apt install curl

在 CentOS 和 Fedora 等基于 RHEL 的发行版上:

 sudo yum install curl

要在 Arch Linux 上安装 curl,请键入:

 sudo pacman -S curl

相关:如何在 Linux 中使用 systemctl 命令管理 systemd 服务

如何使用 curl 命令

Curl 对其所有命令使用以下语法:

 curl options url

…根据手头的任务,选项网址会发生变化。每当您不提及选项/任务时,Curl 都会下载 URL 的源代码。最新的 curl 版本还会猜测协议(如果 URL 中未提及)并将其默认为 HTTP。

以下是一些有用的 curl 命令,用于执行各种功能性任务:

使用 curl 下载文件

您可以使用 curl 通过指定的 URL 下载资源。这个命令有两个你可以使用的标志; -o-O

  • -O命令将文件保存在当前目录中,其名称与远程服务器中的名称相同。
  • 另一方面, -o命令允许您选择文件名和位置。

以下是这两个命令的示例:

 curl -O https://cdn.jsdelivr.net/npm/vue/dist/vue.js

该文件被下载到当前目录中,其原始名称与远程服务器上的名称相同。

 curl -o newfile.tar.gz http://yourdomain.com/yourfile.tar.gz

当您运行上述命令时,curl 将下载文件并将其保存为newfile.tar.gz 。请注意,您必须指定文件名和目录路径作为输入。

使用 curl 恢复中断的下载

下载可能由于多种原因而中断,例如网络中断或链接过期。在这种情况下,恢复中断下载的功能可以帮助您免去再次下载整个文件的麻烦。

-C标志与-o-O结合使用以使用 curl 恢复中断的下载。

 curl -C -O http://yourdomain.com/yourfile.tar.gz

使用 curl 下载多个文件

没有专门的命令可以通过 curl 同时下载多个文件,但是您可以在同一命令中多次使用-o-O标志来获得类似的结果。

例如:

 curl -O http://website1.com/file1.iso -O https://website2.com/file2.iso

上述命令将同时从当前目录中的两个 URL 下载 ISO 文件。

获取网页的 HTTP 标头

HTTP 标头包含关键信息,例如用户代理、内容类型和编码。您可以使用-I (大写的 i,而不是 L)和–http2标志请求 URL 的 HTTP 标头:

 curl -I --http2 https://www.ubuntu.com/

输出:

-I命令显示各种信息,包括服务器软件详细信息、日期、内容类型、X 缓存状态等。

指定最大传输速率

文件传输通常会占用您的大部分带宽,从而限制您执行任何其他任务。

要解决此问题,您可以使用 curl 为下载设置最大传输速率。使用–limit-rate方法,后跟kmg (分别表示千字节、兆字节或千兆字节)修饰符。

以下命令将传输速度限制为 1MBps:

 curl --limit-rate 1m -O https://dl.google.com/go/go1.10.3.linux-amd64.tar.gz

输出:

通过 FTP 和 curl 传输文件

您可以使用文件传输协议通过使用 curl 访问任何 FTP 服务器来传输文件。 Curl 为您提供了在连接到 FTP 服务器后下载和上传文件的功能。

使用以下命令连接到 FTP 服务器:

 curl -u username:password ftp://ftp.example.com/

…其中用户名密码是登录服务器的凭据。

您可以通过在以下命令中指定文件 URL 从服务器下载任何文件:

 curl -u username:password -O ftp://ftp.example.com/file.tar.gz

您还可以使用-T标志将文件上传到 FTP 服务器:

 curl -T newfile.tar.gz -u username:password ftp://ftp.example.com

后跟指定文件的-T命令将其上传到 FTP 服务器。

相关:如何使用 sftp 在 Linux 上安全地传输文件

使用带有 curl 的代理

Curl 支持大量不同的代理,如 HTTPS、HTTP 和 SOCKS。您可以使用这些代理使用 curl 安全地传输数据。

使用以下命令在 curl 中设置代理:

 curl -x 192.168.44.1:8888 http://linux.com/

-x选项将您连接到服务器 192.168.44.1 上的端口 8888。确保将命令中的代理详细信息替换为要连接的代理。上述代理服务器不需要身份验证,但您可以使用以下语法访问受保护的代理:

 curl -U username:password -x 192.168.44.1:8888 http://linux.com/

指定由-U标志旁边的冒号分隔的用户名密码

查看版本详情

当您要检查包的版本信息时,此命令会派上用场。使用–version标志查看 curl 版本:

 curl --version

输出应提及 curl 版本、其协议和功能。

确定 Linux 中 curl 命令的好处

Curl 配备了大量选项,可在您的机器上自动传输数据。恢复中断下载和 FTP 支持的功能在多个应用程序中派上用场。

本教程中的示例旨在展示最流行的 curl 命令及其各自的代码,以帮助您更好地理解 curl 命令。