如何在 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”命令都一定会拓宽您的视野并创造新的机会。