网站搜索

如何在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命令下载文件

Linux 命令“curl -O”允许您从指定的 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”,“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 请求

Linux 命令“$curl --data”的作用是将数据传输到指定的 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://server 访问 FTP 服务器的情况下,以下终端命令将下载文件“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”的请求路由到您的本地主机,方法是使用以下方法 -

$ 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”命令都一定会拓宽您的视野并释放新的机会。

相关文章: