📜  Linux 中的 curl 命令及示例

📅  最后修改于: 2022-05-13 01:57:05.699000             🧑  作者: Mango

Linux 中的 curl 命令及示例

curl是一个命令行工具,用于使用任何支持的协议(HTTP、FTP、IMAP、POP3、SCP、SFTP、SMTP、TFTP、TELNET、LDAP 或 FILE)向服务器传输数据或从服务器传输数据。 curl由 Libcurl 提供支持。该工具是自动化的首选,因为它旨在无需用户交互即可工作。 curl 可以一次传输多个文件。
句法:

curl [options] [URL...]

URL :curl 最基本的用法是输入命令,然后输入 URL。

curl https://www.geeksforgeeks.org

这应该会在终端上显示 URL 的内容。 URL 语法依赖于协议,多个 URL 可以写成这样的集合:

curl http://site.{one, two, three}.com

具有数字序列系列的 URL 可以写成:

curl ftp://ftp.example.com/file[1-20].jpeg

进度表: curl 在使用过程中显示进度表,指示传输速率、传输的数据量、剩余时间等。

curl -# -O ftp://ftp.example.com/file.zip
curl --silent ftp://ftp.example.com/file.zip

如果您喜欢进度条而不是仪表,可以使用上面示例中的-#选项,或者如果您想完全禁用它,可以使用–silent

例子:

选项:

-o:使用参数中提供的名称将下载的文件保存在本地机器上。
句法:

curl -o [file_name] [URL...]
  • 例子:
curl -o hello.zip ftp://speedtest.tele2.net/1MB.zip
  • 输出:

  • 上面的示例从 FTP 服务器下载文件并将其保存为名称hello.zip

-O:此选项下载文件并以与 URL 中相同的名称保存。
句法:

curl -O [URL...]
  • 例子:
curl -O ftp://speedtest.tele2.net/1MB.zip
  • 输出:

-C -:此选项恢复由于某种原因已停止的下载。这在下载大文件并被中断时很有用。
句法:

curl -C - [URL...]
  • 例子:
curl -C - -O ftp://speedtest.tele2.net/1MB.zip
  • 输出:

–limit-rate:此选项限制数据传输速率的上限,并将其保持在给定值(以字节为单位)附近。
句法:

curl --limit-rate [value] [URL]
  • 例子:
curl --limit-rate 1000K -O ftp://speedtest.tele2.net/1MB.zip
  • 输出:

  • 该命令将下载限制为 1000K 字节。

-u: curl 还提供从用户认证的 FTP 服务器下载文件的选项。
句法:

curl -u {username}:{password} [FTP_URL]
  • 例子:
curl -u demo:password -O ftp://test.rebex.net/readme.txt
  • 输出:

-T:此选项有助于将文件上传到 FTP 服务器。
句法:

curl -u {username}:{password} -T {filename} {FTP_Location}
  • 如果您想附加一个已经存在的 FTP 文件,您可以使用-a 或 –append选项。

–libcurl:从开发人员的角度来看,此选项非常有用。如果此选项附加到任何 cURL 命令,它会输出将 libcurl 用于指定选项的 C 源代码。它是类似于命令行实现的代码。
句法:

curl [URL...] --libcurl [filename]
  • 例子:
curl https://www.geeksforgeeks.org > log.html --libcurl code.c
  • 输出:

  • 上面的示例下载 HTML 并将其保存到 log.html 和 code.c 文件中的代码。下一个命令显示代码的前 30 行。

-x, –proxy: curl 还允许我们使用代理来访问 URL。
句法:

curl -x [proxy_name]:[port] [URL...]
  • 如果代理需要身份验证,可以与命令一起使用:
curl -u [user]:[password] -x [proxy_name]:[port] [URL...]

发送邮件:由于 curl 可以通过不同的协议传输数据,包括 SMTP,我们可以使用 curl 发送邮件。
句法:

DICT 协议: Libcurl 定义了 DICT 协议,可用于直接从命令行轻松获取任何单词的定义或含义。
句法:

curl [protocol:[dictionary_URL]:[word]
  • 例子:
curl dict://dict.org/d:overclock
  • 输出:

注意: cURL 提供了许多其他选项,可以在主页上进行检查。 libcurl 库已被移植到各种编程语言中。建议访问各个项目站点以获取文档。