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 发送邮件。
句法:
curl –url [SMTP URL] –mail-from [sender_mail] –mail-rcpt [receiver_mail] -n –ssl-reqd -u {email}:{password} -T [Mail text file]
DICT 协议: Libcurl 定义了 DICT 协议,可用于直接从命令行轻松获取任何单词的定义或含义。
句法:
curl [protocol:[dictionary_URL]:[word]
- 例子:
curl dict://dict.org/d:overclock
- 输出:
注意: cURL 提供了许多其他选项,可以在主页上进行检查。 libcurl 库已被移植到各种编程语言中。建议访问各个项目站点以获取文档。