
CURL 是服务器上用于数据传输的命令行工具。CURL 支持许多协议,例如: DICT, FILE, FTP, FTPS, GOPHER, HTTP, HTTPS, IMAP, IMAPS, LDAP, LDAPS, POP3, POP3S, RTMP, RTSP, SCP, SFTP, SMB, SMBS, SMTP, SMTPS, TELNET,FTP。
CURL 提供100多个命令行选项,在本教程中,我们将介绍一些基本但有用的选项。
把下载的数据在终端输出
将输出结果保存到文件中
$ curl [url] > [name-of -output-file]
或者,还可以使用 -o 选项将输出保存到特定的文件
$ curl -o [name-of-output-file] [url-name]
示例如下:
还存在一个 -O 选项,允许将下载的数据保存在与远程文件名称相同的文件中。
$ curl -O [url]
示例如下:
上面的命令将下载的数据保存在一个名为 manpage.html 的文件中
如果您不希望 curl 在输出中显示进度细节和错误,那么您可以使用 -s 选项
例如,考虑以下 curl 抛出错误的情况
要消除此类错误,使用 -s 选项
如果您希望 curl 只显示错误而不显示任何其他细节(如默认情况下显示的进度细节),请使用 -s 选项和 -S 选项
使用该工具,您可以通过一个命令下载多个文件
$ curl -o/O [url1] -o/O [url2]
示例如下:
假设,您向 Curl 命令提供了一个 URL,但是 web 页面不存在 (比如,它已经移动到其他位置)。在这种情况下,您可以使用 -L 命令行选项,这将使 curl 在新位置上重做请求。
考虑这样一种情况,在 Curl 中抛出一个错误,例如:页面移动
但如果您通过 web 浏览器访问网页,则会观察到重定向。为了确保 Curl 也处理这个重定向,使用 -L 命令行选项。
$ curl -L [url]
示例如下:
使用 -v 选项,可以检索关于 Curl 操作的详细信息
以 > 和 < 开头的行分别代表 Curl 发送和接收的报头数据,* 表示工具提供的附加信息,示例如下:
如果对使用 -v 选项得到的细节不满意,那么可以使用 -trace选项
通过该工具,您可以使用 dict 协议在终端上搜索单词。一个字典服务器 http://dict.org url 被传递给它,http://dict.org 服务器支持大约 77 种字典。
要列出终端上支持的所有字典,运行以下命令:
$ curl dict://http://dict.org/show:db
现在,要在特定的字典中搜索单词,请使用以下命令
$ curl dict://http://dict.org/d:[word-to-be-searched]:[dictionary-name]
示例如下:
备注: gcide 是 The Collaborative International Dictionary of English 的简称。
如果你想在所有的字典中搜索一个单词,运行以下命令
$ curl dict://http://dict.org/d:[word-to-be-searched]:*
示例如下:
如果我们要使用代理来访问 internet,那么在使用 curl 命令下载文件时需要提供代理信息,使用的选项 -x 可以达成目的,示例如下:
当下载文件时,我们可能想要限制下载的速度,因为下载可能最终会占用整个网络带宽。我们可以使用 --limit-rate 选项限制下载速度,示例如下:
从一个网站下载在 2017年1月1日之后修改过的文件,示例如下:
从一个网站下载在 2017年1月1日之前修改过的文件,示例如下:
有许多网站只允许认证和授权之后下载文件,要使用 curl 下载这样一个文件,我们可以使用 -u 选项,示例如下:
有时它发生在下载文件,特别是当下载大文件时,我们需要停止下载以节省带宽来执行一些其他重要任务,或者我们的下载可能会由于一些网络问题而中断。我们可以使用 -C 选项,从中断或停止的位置开始下载,示例如下:
Curl 支持许多协议,FTP 就是其中之一,示例如下:
上传单个文件到 FTP 服务器,示例如下:
上传多个文件到 FTP 服务器,示例如下:
使用 curl,我们还可以从 FTP 服务器中删除文件,示例如下:
有时我们可能需要验证下载数据的网站的 SSL 证书,我们可以通过使用 -carcert 来做到这一点,我们还需要提证书的名称,示例如下:
当使用一个可能带有自签名证书的网站时,我们会收到一个 SSL 证书警告消息,要忽略此消息并继续下载,我们可以使用 -k 选项,示例如下:
以上是 curl 命令的一些使用示例,请在下面的评论框中分享您的评论和疑问。
