如何在 Linux 中使用“Curl”命令?


“curl”命令是 Linux 环境中一个多功能的工具,它能够利用各种协议(包括 HTTP、FTP 和 SMTP)在服务器之间传输数据。此命令行实用程序以其健壮性和多功能性而闻名,因为它可以用于各种任务,包括发送 HTTP 请求、检索文件和上传数据。加入我们,深入了解在 Linux 中使用“curl”命令的基础知识,了解其各种选项和应用。

1. 检查 Curl 版本

在 Linux 操作系统中,“curl --version”命令显示有关设备上安装的“curl”工具版本的关键信息。使用“--version”标志,此命令显示版本号、构建日期以及其他有关“curl”软件的相关详细信息。此信息在诊断问题或确认“curl”与其他软件或脚本的兼容性时非常有价值。

输入

$ curl -version

输出

curl 7.72.0 (x86_64-pc-linux-gnu) libcurl/7.72.0 OpenSSL/1.1.1g zlib/1.2.11 libidn2/2.3.0 libpsl/0.21.0 (+libidn2/2.3.0) nghttp2/1.41.0 librtmp/2.3
Release-Date: 2021-02-24
Protocols: dict file ftp ftps gopher http https imap imaps ldap ldaps pop3 pop3s rtmp rtsp smb smbs smtp smtps telnet tftp 
Features: AsynchDNS GSS-API HTTP2 HTTPS-proxy IDN IPv6 Kerberos Largefile libz NTLM NTLM_WB PSL RTSP-CLIENT SSPI TLS-SRP UnixSockets 

2. 使用 Curl 命令下载文件

“curl -O”Linux 命令允许您从指定的 URL 下载文件并保留其原始名称。“-O”选项指示 curl 在将远程文件保存到本地计算机时保留其原始名称。此功能对于从服务器下载文件并保持其名称不变非常方便。例如,如果您想从“http://example.com/file.txt”下载文件“file.txt”,您只需运行“curl -O http://example.com/file.txt”,文件将以相同的名称“file.txt”保存在您的本地计算机上。

在 Linux 中执行“curl -O”的结果取决于要下载的 URL。如果 URL 正确且文件存在,curl 将启动下载并将文件保存在当前目录中,保留其来自远程服务器的原始名称。终端将显示下载进度,包括文件总大小和已检索数据量等详细信息。

“curl -O http://example.com/file.txt”命令可以作为此输出的示例,其中下载的文件将作为“file.txt”保存在当前工作目录中。

输入

$ curl -O

输出

% Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100   100    0     0  100   100      0      0  0:00:01  0:00:01 --:--:--     0

3. 使用 Curl 命令下载多个文件

通过执行以下命令,您可以同时从 http://example1.com 和 http://example2.com 分别获取 file1.html 和 file2.html。

$ curl -O http://file1.com/example1.html -O http://example2.com/file2.html 

4. 使用 Curl 从文件下载 URL

“xargs -n 1 curl -O < urls.txt”命令在 Linux 中有效地下载多个文件。“urls.txt”文件包含 URL 列表,“xargs”将每一行作为参数传递给“curl”,后者使用其原始名称在当前工作目录中下载文件。“-n 1”选项限制传递的行数,“-O”保存文件。该命令显示下载进度并成功检索所有文件。简而言之,此命令是在 Linux 中使用“curl”和“xargs”下载多个文件的简单方法。

输入

$ xargs -n 1 curl -O < urls.txt

输出

% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 56100 0 56100 0 0 157700 0 --:--:-- --:--:-- --:--:-- 157700
100 52412 0 52412 0 0 248300 0 --:--:-- --:--:-- --:--:-- 248300
100 48976 0 48976 0 0 157700 0 --:--:-- --:--:-- --:--:-- 157700
...

5. 查询 HTTP 标头

在 Linux 环境中,“$ curl -I www.example.com”命令用于获取位于“www.example.com”的网站的 HTTP 标头。“curl”命令中的“-I”开关仅用于检索 HTTP 标头,不包括网站的实际内容。这些标头包括网站状态代码、日期、服务器和内容类型等详细信息,使其可用于网站状态检查、调试和了解网站设置等活动。

输入

$ curl -I www.example.com

输出

HTTP/1.1 200 OK
Date: Tue, 07 Feb 2023 00:23:51 GMT
Server: Apache
Last-Modified: Mon, 06 Feb 2022 08:20:07 GMT
ETag: "3d-5a5e5c5dd5e5b"
Accept-Ranges: bytes
Content-Length: 951
Connection: close
Content-Type: text/html; charset=UTF-8

6. 使用 Curl 命令带参数进行 POST 请求

“$ curl --data”Linux 命令用于将数据传输到指定的 URL。在提供的示例中,传输的数据包含两个参数,“firstName”设置为“John”,“lastName”设置为“Doe”。数据通过 HTTP POST 方法发送到 URL“https://exampledomain.com/file.php”。此命令通常用于将信息提交到网站或 Web 应用程序以进行处理。“--data”标志可以指定需要传输的数据,“curl”命令启动传输。

输入

$ curl --data "firstName=John&lastName=Doe" https://exampledomain.com/file.php

输出

这方面的输出基于特定的服务器和从 HTTP post 方法发送的数据,它可能是如下所示的纯文本

My name is John Doe

7. 使用或不使用身份验证从 FTP 服务器上传和下载文件

使用正确的命令可以轻松地从远程 FTP 服务器获取文件。在 FTP 服务器可在 ftp://server 访问的情况下,以下终端命令将下载文件“file.tar.gz”并将其放置在当前工作目录中。

$ curl -u username:password -O ftp://yourftpserver/yourfile.tar.gz 

可以使用以下 curl 命令将名为“file.tar.gz”的文件从本地计算机上传到位于“ftp://server”的 FTP 服务器

$ curl -u username:password -T mylocalfile.tar.gz ftp://yourftpserver

8. 使用 Curl 命令存储网站 Cookie

要查看在浏览到 https://www.example.com 时保存在计算机上的 Cookie,请使用以下 curl 命令将其下载到名为“examplecookies.txt”的文件中。然后,您可以简单地使用 cat 命令显示文件的内容。

输入

$ curl --cookie-jar examplecookies.txt https://www.example.com/file.html -O

输出

 % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 1701k  100 1701k    0     0   951k      0  0:00:01  0:00:01 --:--:--  951k

9. 使用 Curl 命令修改名称解析

作为 Web 开发人员,如果您希望在将“demodomain.com”的本地版本发布到公众之前预览它,您可以使用 curl 将对“http://www.demodomain.com”的请求路由到您的 localhost,方法如下:

$ curl --resolve www.demodomain.com:80:localhost http://www.demodomain.com/

10. 使用 Curl 命令限制下载速率

通过以下方法将下载速度限制为 200 KB/s,防止 curl 消耗过多的带宽。

$ curl --limit-rate 200K http://demodomain.com/file.tar.gz -O

结论

总而言之,“curl”命令是 Linux 环境中的一个重要工具,它允许使用各种协议在服务器之间无缝传输数据。从发送 HTTP 请求到下载文件和上传数据,此多功能命令提供了大量机会来简化您与基于 Web 的信息的工作。掌握“curl”命令及其不同选项是一项宝贵的财富,可以提高您在 Linux 环境中操作数据的能力。无论您是经验丰富的 Linux 用户还是刚刚开始您的旅程,花时间学习“curl”命令都一定会拓宽您的视野并创造新的机会。

更新于:2023-07-26

3K+ 阅读量

开启你的 职业生涯

通过完成课程获得认证

开始学习
广告