“Linux curl命令详解”的版本间差异
(建立内容为“category:curl == 关于 == 【转自:'''[http://aiezu.com/article/linux_curl_command.html http://aiezu.com/article/linux_curl_command.html]'''】 == 语…”的新页面) |
|||
第13行: | 第13行: | ||
|- | |- | ||
! style="width:10%;" | 参数组 | ! style="width:10%;" | 参数组 | ||
! style="width: | ! style="width:35%;" | 参数 | ||
! style="width: | ! style="width:55%;" | 描述 | ||
|- | |- | ||
| rowspan="1" | url | | rowspan="1" | url | ||
第26行: | 第26行: | ||
|- | |- | ||
| rowspan="4" | 请求头 | | rowspan="4" | 请求头 | ||
| | | -H "name: value" | ||
--header "name: value" | |||
| (HTTP) | | (HTTP)添加一个http header(http请求头); | ||
|- | |- | ||
| | | -H "name:" | ||
--header "name:" | |||
| (HTTP) | | (HTTP)移除一个http header(http请求头); | ||
|- | |- | ||
| | | -A "string" | ||
--user-agent "string" | |||
| (HTTP) | | (HTTP)设置Http请求头“User-Agent”,服务器通过“User-Agent”可以判断客户端使用的浏览器名称和操作系统类型,伪造此参数能导致服务器做出错误判断。 | ||
* 也可以使用<code>-H</code>,<code>--header option</code>设置此选项; | * 也可以使用<code>-H</code>,<code>--header option</code>设置此选项; | ||
|- | |- | ||
| | | -e <URL> | ||
--referer <URL> | |||
| (HTTP) | | (HTTP)设置访问时的来源页面,告诉http服务从哪个页面进入到此页面; | ||
* <code>-e "xxx.com"</code>相当于<code>-H "Referer: www.xxx.com"</code>; | * <code>-e "xxx.com"</code>相当于<code>-H "Referer: www.xxx.com"</code>; | ||
|- | |- | ||
| < | | rowspan="3" | 响应头 | ||
< | | -I | ||
--head | |||
| (HTTP)只输出HTTP-header,不获取内容(HTTP/FTP/FILE)。 | |||
* 用于HTTP服务时,获取页面的http头; | |||
*:(如:<code>curl -I http://aiezu.com</code>) | |||
* 用于FTP/FILE时,将会获取文件大小、最后修改时间; | |||
*:(如:<code>curl -I file://test.txt</code>) | |||
|- | |- | ||
| < | | -i< | ||
--include | |||
| | | (HTTP)输出HTTP头和返回内容; | ||
|- | |- | ||
| < | | -D <file> | ||
< | --dump-header <file> | ||
| | | (HTTP)转储http响应头到指定文件; | ||
|- | |- | ||
| rowspan=" | | rowspan="3" | cookie | ||
| | | -b name=data | ||
--cookie name=data | |||
| (HTTP)发送cookie数据到HTTP服务器,数据格式为:"NAME1=VALUE1; NAME2=VALUE2"; | |||
* 如果行中没有“=”,将把参数值当作cookie文件名; | |||
* 这个cookie数据可以是由服务器的http响应头“Set-Cookie:”行发送过来的; | |||
|- | |- | ||
| | | -c filename | ||
--cookie-jar file name | |||
| | | (HTTP)完成操作后将服务器返回的cookies保存到指定的文件; | ||
* 指定参数值为“-”将定向到标准输出“如控制台”; | |||
|- | |- | ||
| | | -j | ||
--junk-session-cookies | |||
| (HTTP)告诉curl放弃所有的"session cookies"; | |||
* 相当于重启浏览器; | |||
| | |||
|- | |- | ||
| rowspan=" | | rowspan="5" | 代理 | ||
| | | -x host:port | ||
-x [protocol://[user:pwd@]host[:port] | |||
--proxy [protocol://[user:pwd@]host[:port] | |||
| 使用HTTP代理访问;如果未指定端口,默认使用8080端口。 | |||
* protocol默认为http_proxy,其他可能的值包括:http_proxy、HTTPS_PROXY、socks4、socks4a、socks5; | |||
*: 如: | |||
*: --proxy 8.8.8.8:8080; | |||
*: -x "http_proxy://aiezu:123@aiezu.com:80" | |||
|- | |- | ||
| | | -p | ||
--proxytunnel | |||
| 将“-x”参数的代理,作为通道的方式去代理非HTTP协议,如ftp; | |||
| | |||
|- | |- | ||
| | | --socks4 <host[:port]> | ||
--socks4a <host[:port]><br/> | |||
--socks5 <host[:port]> | |||
| 使用 SOCKS4 代理; | |||
使用 SOCKS4A 代理;<br/> | |||
| | 使用 SOCKS5 代理;<br/> | ||
* 此参数会覆盖“-x”参数; | |||
|- | |- | ||
| | | --proxy-anyauth | ||
--proxy-basic<br/> | |||
--proxy-diges<br/> | |||
--proxy-negotiate<br/> | |||
--proxy-ntlm | |||
| | | http代理认证方式,参考: | ||
: --anyauth | |||
: --basic | |||
: --diges | |||
: --negotiate | |||
: --ntlm | |||
|- | |- | ||
| | | -U <user:password> | ||
--proxy-user <user:password> | |||
| 设置代理的用户名和密码; | |||
| | |||
|- | |- | ||
| rowspan=" | | rowspan="5" | 数据传输 | ||
| | | -G | ||
--get | |||
| 如果使用了此参数,“-d/”、“--data”、“--data-binary”参数设置的数据,将附加在 url 上,以 GET 的方式请求; | |||
| | |||
|- | |- | ||
| | | -d @file | ||
-d "string"<br/> | |||
--data "string"<br/> | |||
--data-ascii "string"<br/> | |||
--data-binary "string"<br/> | |||
| | --data-urlencode "string" | ||
| (HTTP)使用HTTP POST方式发送“key/value对”数据,相当于浏览器表单属性(method="POST",enctype="application/x-www-form-urlencoded") | |||
: -d,--data:HTTP方式 POST 数据; | |||
: --data-ascii:HTTP方式 POST ascii数据; | |||
: --data-binary:HTTP方式 POST 二进制数据; | |||
: --data-urlencode:HTTP方式 POST 数据(进行urlencode); | |||
* 如果数据以“'''@'''”开头,后紧跟一个文件,将post文件内的内容; | |||
|- | |- | ||
| | | -F name=@file | ||
-F name=<file<br/> | |||
-F name=content<br/> | |||
--form name=content<br/> | |||
| (HTTP)使用HTTP POST方式发送类似“表单字段”的多类型数据,相当于同时设置浏览器表单属性(method="POST",enctype="multipart/form-data"),可以使用此参数上传二进制文件。 | |||
| | 如果字段内容以“'''@'''”开头,剩下的部分应该是文件名,curl将会上传此文件,如: | ||
: <code>curl -F "pic=@pic.jpg" http://aiezu.com;</code> | |||
: <code>curl -F "page=@a.html;type=text/html" http://aiezu.com</code> | |||
: <code>curl -F "page=@/tmp/a;filename=a.txt" http://aiezu.com</code> | |||
如果字段内容以“<”开头,剩下的部分应该是文件名,curl将从文件中获取作为此字段的值,如:curl -F "text=<text.txt" http://aiezu.com; | |||
|- | |- | ||
| | | --form-string <key=value> | ||
| (HTTP)类似于“--form”,但是“@”、“<”无特殊含义; | |||
| | |||
|- | |- | ||
| | | -T file | ||
| | --upload-file file | ||
| 通过“put”的方式将文件传输到远程网址; | |||
* 选项参数只使用字符"'''-'''",将通过stdin读入文件内容; | |||
*: 如: | |||
| | *: <code>cat test.txt|curl "http://aiezu.com/a.php" -T -</code> | ||
*: <code>curl "http://aiezu.com/a.php" -T - <test.txt</code> | |||
* 此参数也可以使用通配符: | |||
*: <code>curl -T "{file1,file2}" http://aiezu.com</code> | |||
*: <code>curl -T "img[1-1000].png" http://aiezu.com</code> | |||
|- | |- | ||
| rowspan="2" | | | rowspan="2" | 断点续传 | ||
| | | -C <offset> | ||
--continue-at <offset> | |||
| 断点续转,从文件头的指定位置开始继续下载/上传; | |||
* offset续传开始的位置,如果offset值为“'''-'''”,curl会自动从文件中识别起始位置开始传输; | |||
|- | |- | ||
| | | -r <range> | ||
| | --range <range> | ||
| (HTTP/FTP/SFTP/FILE) 只传输内容的指定部分: | |||
: 0-499:最前面500字节; | |||
: -500:最后面500字节; | |||
: 9500-:最前面9500字节; | |||
: 0-0,-1:最前面和最后面的1字节; | |||
: 100-199,500-599:两个100字节; | |||
|- | |- | ||
| rowspan=" | | rowspan="6" | 认证 | ||
| | | --basic | ||
| (HTTP)告诉curl使用HTTP Basic authentication(HTTP协议时)。 | |||
* 这是默认认证方式; | |||
| | |||
|- | |- | ||
| | | --ntlm | ||
| (HTTP)使用NTLM身份验证方式,用于HTTP协议; | |||
* 一般用于IIS使用NTLM的网站; | |||
| | |||
|- | |- | ||
| | | --digest | ||
| (HTTP)使用HTTP Digest authentication加密,用于HTTP协议; | |||
* 配合“<code>-u/--user</code>”选项,防止密码使用明文方式发送; | |||
| | |||
|- | |- | ||
| | | --negotiate | ||
| (HTTP)使用GSS-Negotiate authentication方式,用于HTTP协议; | |||
* 它主要目的是为它的主要目的是为 kerberos5 认证提供支持支持; | |||
| | |||
|- | |- | ||
| | | --anyauth | ||
| (HTTP)告诉curl自动选择合适的身份认证方法,并选用最安全的方式; | |||
| | |||
|- | |- | ||
| | | -u user:password | ||
--user user:password | |||
| 使用用户名、密码认证,此参数会覆盖“-n”、“--netrc”和“--netrc-optional”选项; | |||
* 如果你只提供用户名,curl将要求你输入密码; | |||
* 如果你使用“SSPI”开启的curl库做“NTLM”认证,可以使用不含用户名密码的“-u:”选项,强制curl使用当前登录的用户名密码进行认证; | |||
| | * 此参数相当于设置http头“Authorization:”; | ||
|- | |- | ||
| rowspan=" | | rowspan="6" | 证书 | ||
| | | -E <证书[:密码]> | ||
--cert <证书[:密码]> | |||
| (SSL)指定“PEM”格式的证书文件和证书密码; | |||
| | |||
|- | |- | ||
| | | --cert-type <type> | ||
| (SSL)告诉curl所提供证书的类型:PEM、DER、ENG等; | |||
* 默认为“PEM”; | |||
| | |||
|- | |- | ||
| | | --cacert <CA证书> | ||
| (SSL)告诉curl所以指定的CA证书文件,必须是“PEM”格式; | |||
| | |||
|- | |- | ||
| | | --capath <CA证书路径> | ||
| (SSL)告诉curl所以指定目录下的CA证书用来验证; | |||
* 这些证书必须是“PEM”格式; | |||
| | |||
|- | |- | ||
| | | --crlfile <file> | ||
| (HTTPS/FTPS)提供一个PEM格式的文件,用于指定被吊销的证书列表; | |||
| | |||
|- | |- | ||
| | | -k | ||
--insecure | |||
| (SSL)设置此选项将允许使用无证书的不安全SSL进行连接和传输。 | |||
| | |||
|- | |- | ||
| rowspan=" | | rowspan="5" | SSL其他 | ||
| | | --ciphers <list of ciphers> | ||
| (SSL)指定SSL要使用的加密方式;如:“aes_256_sha_256”; | |||
|- | |- | ||
| | | --engine <name> | ||
| 设置一个OpenSSL加密引擎用于加密操作; | |||
* 使用“curl --engine list”查看支持的加密引擎列表; | |||
| | |||
|- | |- | ||
| | | --random-file | ||
| (SSL)指定包含随机数据的文件路径名;数据是用来为SSL连接产生随机种子为; | |||
| | |||
|- | |- | ||
| | | --egd-file <file> | ||
| (SSL)为随机种子生成器EGD(Entropy Gathering Daemon socket)指定的路径名; | |||
| | |||
|- | |- | ||
| | | -1/--tlsv1 | ||
--tlsv1.0<br/> | |||
--tlsv1.1<br/> | |||
--tlsv1.2<br/> | |||
-2/--sslv2<br/> | |||
| | -3/--sslv3<br/> | ||
| (SSL)使用 TLS版本2 与远程服务器通讯;<br/> | |||
(SSL)使用 TLS 1.0 版本与远程服务器通讯;<br/> | |||
(SSL)使用 TLS 1.1 版本与远程服务器通讯;<br/> | |||
(SSL)使用 TLS 1.2 版本与远程服务器通讯;<br/> | |||
(SSL)使用 SSL版本2 与远程服务器通讯;<br/> | |||
(SSL)使用 SSL版本3 与远程服务器通讯;<br/> | |||
|- | |- | ||
| rowspan=" | | rowspan="4" | 私钥公钥 | ||
| | | --key <key> | ||
| (SSL/SSH)指定一个私钥文件名;为指定时自动尝试使用下面文件:“~/.ssh/id_rsa”、“~/.ssh/id_dsa”、“./id_rsa'”、“./id_dsa”; | |||
|- | |- | ||
| | | --key-type <type> | ||
| (SSL)指定私钥文件类型,支持:DER、PEM、ENG,默认是PEM; | |||
| | |||
|- | |- | ||
| | | --pass <phrase> | ||
| (SSL/SSH)指定私钥文件的密码; | |||
| | |||
|- | |- | ||
| | | --pubkey <key> | ||
| (SSH)使用指定文件提供的您公钥; | |||
| | |||
|- | |- | ||
| rowspan=" | | rowspan="11" | FTP | ||
| | | -P | ||
--ftp-port <接口> | |||
| (FTP)FTP主动模式时,设置一个地址等待服务器的连接,如: | |||
网卡:<code>eth1</code> | |||
IP:<code>8.8.8.8</code> | |||
主机名:<code>xxx.com</code> | |||
可以加端口号:<code>eth1:20000-21000;</code> | |||
|- | |- | ||
| | | --crlf | ||
| (FTP)上传时将换行符(LF)转换为回车换行(CRLF); | |||
| | |||
|- | |- | ||
| | | --ftp-account [data] | ||
| (FTP)ftp帐号信息; | |||
| | |||
|- | |- | ||
| rowspan="2" | | | --ftp-method [method] | ||
| | | (FTP)可选值:multicwd / nocwd / singlecwd; | ||
|- | |||
| --ftp-pasv | |||
| (FTP)使用使用PASV(被动)/EPSV模式; | |||
| rowspan="2" | | |- | ||
| --ftp-skip-pasv-ip | |||
| (FTP)使用PASV的时,跳过指定IP; | |||
|- | |||
| --ftp-create-dirs | |||
| (FTP)上传时自动创建远程目录; | |||
|- | |||
| -l | |||
--list-only | |||
| (FTP)列出ftp文件列表; | |||
|- | |||
| -B | |||
--use-ascii | |||
| (FTP/LDAP)使用Ascii传输模式,用于FTP、LDAP;在ftp中相当与使用了“type=A;”模式。 | |||
|- | |||
| --disable-epsv | |||
| (FTP)告诉curl在PASV(被动模式)时不要使用EPSV; | |||
|- | |||
| --disable-eprt | |||
| (FTP)告诉curl在主动模式时禁用EPRT和LPRT; | |||
|- | |||
| rowspan="3" | 限速 | |||
| --limit-rate <speed> | |||
| 限制curl使用的最大带宽;如果未指定单位,默认单位为“bytes/秒”。 | |||
* 你也可以指定单位为“K”、“M”、“G”等单位,如:“--limit-rate 1m”为限制最大使用带宽为“1m字节/秒”; | |||
|- | |||
| -y | |||
<nowiki>--speed-time <time></nowiki> | |||
| 如果在一个快速时间内,下载速度低于每秒速度限制字节数,则下载将中止。 | |||
* 如果使用<code>speed-time</code>,默认速度限制将为 1,则除非使用<code>-Y</code>设置。 | |||
* 该选项控制传输,因此不会影响慢速连接等。如果您对此感到担忧,请尝试<code>--connect-timeout</code>选项。 | |||
|- | |||
| -Y | |||
--speed-limit <speed> | |||
| 如果下载速度低于此给定速度(以字节/秒为单位)达数秒,则会中止下载。 | |||
<code>speed-time</code>使用<code>-y</code>设置,如果未设置,则为30。 | |||
|- | |||
| rowspan="14" | 其他选项 | |||
| -0/--http1.0 | |||
| (HTTP) 强制curl使用HTTP 1.0而不是使用默认的HTTP 1.1; | |||
|- | |||
| --interface <name> | |||
| 使用指定的网卡接口访问; | |||
: <code>curl --interface eth0 http://xxx.com</code> | |||
: <code>curl --interface 10.0.0.101 http://xxx.com</code> | |||
|- | |||
| '''-X''' <command> | |||
--request <command> | |||
| (HTTP)指定与服务器通信使用的请求方法,如:GET、PUT、POST、DELETE等,默认GET; | |||
|- | |||
| --keepalive-time <seconds> | |||
| 设置keepalive时间 | |||
|- | |||
| --no-keepalive | |||
| 关闭keepalive功能; | |||
|- | |||
| --no-buffer | |||
| 禁用对输出流缓冲; | |||
|- | |||
| --buffer | |||
| 启用输出流缓冲; | |||
|- | |||
| -L | |||
--location | |||
| (HTTP/HTTPS)追随http响应头“Location:”定向到跳转后的页面; | |||
(在http响应码为3XX时使用,如301跳转、302跳转) | |||
|- | |||
| --location-trusted | |||
| (HTTP/HTTPS)同“--location”,但跳转后会发送跳转前的用户名和密码; | |||
|- | |||
| --compressed | |||
| (HTTP)请求对返回内容使用压缩算法进行压缩;curl支持对gzip压缩进行解压; | |||
|- | |||
| --connect-timeout <seconds> | |||
| 指定最大连接超时,单位“秒”; | |||
|- | |||
| -m seconds | |||
--max-time seconds | |||
| 限制整个curl操作的最长时间,单位为秒; | |||
|- | |||
| -s | |||
--silent | |||
| 安静模式。不要显示进度表或错误消息; | |||
|- | |||
| -# | |||
--progress-bar | |||
| 显示进度条; | |||
|- | |||
| rowspan="4" | 错误选项 | |||
| -f | |||
--fail | |||
| (HTTP)连接失败时(400以上错误)不返回默认错误页面,而是返回一个curl错误码“22”; | |||
|- | |||
| --retry <num> | |||
--retry-delay <seconds><br/> | |||
--retry-max-time <seconds> | |||
| 失败重试次数; | |||
重试间隔时间;<br/> | |||
最大重试时间; | |||
|- | |||
| -S | |||
--show-error | |||
| 安静模式下显示错误信息; | |||
|- | |||
| --stderr <file> | |||
| 错误信息保存文件; | |||
|- | |||
| rowspan="4" | 输出 | |||
| -o file | |||
--output file | |||
| 将返回内容输出到文件。 | |||
* 如果是用过通配符获取多个url,可以使用“#”后跟“数字序号”,curl会自动将它替换对应的关键词,如: | |||
*: <code>curl "http://xxx.com/{a,b}.txt" -o "#1.txt";</code> | |||
*: 将保存为:“a.txt”,“b.txt”; | |||
*: <code>curl "http://xxx.com/{a,b}_[1-3].txt" -o "#1#2.txt";</code> | |||
*: 将保存为:a1.txt、a2.txt、a3.txt、b1.txt、b2.txt、b3.txt | |||
* 如果要根据规则创建保存目录,参考:“--create-dirs” | |||
* 指定“-”将定向到标准输出“如控制台”; | |||
|- | |||
| -O | |||
--remote-name | |||
| 将返回内容输出到当前目录下,和url中文件名相同的文件中(不含目录); | |||
|- | |||
| --create-dirs | |||
| 与“-o”参数配合使用,创建必要的本地目录层次结构 | |||
|- | |||
| -w | |||
--write-out format | |||
| 操作完成后在返回信息尾部追加指定的内容; | |||
* 要追加的内容可以是一个字符串“string”、从文件中获取“@filename”、从标准输入中获取“@-”; | |||
* 格式参数中可以用%{variable_name} 方式使用响应信息的相关变量; | |||
*: 如:<code>%{content_type}</code>、<code>%{http_code}</code>、<code>%{local_ip}</code>... | |||
*: 更多变量参考“man curl”获取; | |||
* 格式参数可以使用“\n”、“\r”、“\t”等转义字符; | |||
|- | |||
| rowspan="5" | 调试 | |||
| -trace <file> | |||
| 转储所有传入和传出的数据到文件,包括描述信息; | |||
* 使用“'''-'''”作为文件名将输出发送到标准输出。 | |||
|- | |||
| --trace-ascii file | |||
| 转储所有传入和传出的数据到文件,包括描述信息,只转储ASCII部分,更容易阅读; | |||
* 使用“'''-'''”作为文件名将输出发送到标准输出。 | |||
* 这个选项会覆盖之前使用的 <code>-v</code>、 <code>--verbose</code>、 <code>--trace-ascii</code> 选项; | |||
|- | |||
| --trace-time | |||
| 转储文件中添加时间信息; | |||
|- | |||
| -K | |||
--config <config file> | |||
| 从配置文件中读取参数。 | |||
* 参考:http://curl.haxx.se/docs/ | |||
|- | |||
| '''-v''' | |||
--verbose | |||
| 显示更详细的信息,调试时使用; | |||
|- | |||
| rowspan="2" | 帮助 | |||
| -M | |||
--manual | |||
| 显示完整的帮助手册; | |||
|- | |||
| -h | |||
--help | |||
| linux curl用法帮助; | |||
|} | |} | ||
2021年5月23日 (日) 00:01的版本
关于
【转自:http://aiezu.com/article/linux_curl_command.html】
语法
curl [options] [URL...]
curl命令参数详解:
参数组 | 参数 | 描述 |
---|---|---|
url | url | 需要抓取的一到多个URLs;
支持多个通配符方式:
|
请求头 | -H "name: value"
--header "name: value" |
(HTTP)添加一个http header(http请求头); |
-H "name:"
--header "name:" |
(HTTP)移除一个http header(http请求头); | |
-A "string"
--user-agent "string" |
(HTTP)设置Http请求头“User-Agent”,服务器通过“User-Agent”可以判断客户端使用的浏览器名称和操作系统类型,伪造此参数能导致服务器做出错误判断。
| |
-e <URL>
--referer <URL> |
(HTTP)设置访问时的来源页面,告诉http服务从哪个页面进入到此页面;
| |
响应头 | -I
--head |
(HTTP)只输出HTTP-header,不获取内容(HTTP/FTP/FILE)。
|
-i<
--include |
(HTTP)输出HTTP头和返回内容; | |
-D <file>
--dump-header <file> |
(HTTP)转储http响应头到指定文件; | |
cookie | -b name=data
--cookie name=data |
(HTTP)发送cookie数据到HTTP服务器,数据格式为:"NAME1=VALUE1; NAME2=VALUE2";
|
-c filename
--cookie-jar file name |
(HTTP)完成操作后将服务器返回的cookies保存到指定的文件;
| |
-j
--junk-session-cookies |
(HTTP)告诉curl放弃所有的"session cookies";
| |
代理 | -x host:port
-x [protocol://[user:pwd@]host[:port] --proxy [protocol://[user:pwd@]host[:port] |
使用HTTP代理访问;如果未指定端口,默认使用8080端口。
|
-p
--proxytunnel |
将“-x”参数的代理,作为通道的方式去代理非HTTP协议,如ftp; | |
--socks4 <host[:port]>
--socks4a <host[:port]> |
使用 SOCKS4 代理;
使用 SOCKS4A 代理;
| |
--proxy-anyauth
--proxy-basic |
http代理认证方式,参考:
| |
-U <user:password>
--proxy-user <user:password> |
设置代理的用户名和密码; | |
数据传输 | -G
--get |
如果使用了此参数,“-d/”、“--data”、“--data-binary”参数设置的数据,将附加在 url 上,以 GET 的方式请求; |
-d @file
-d "string" |
(HTTP)使用HTTP POST方式发送“key/value对”数据,相当于浏览器表单属性(method="POST",enctype="application/x-www-form-urlencoded")
| |
-F name=@file
-F name=<file |
(HTTP)使用HTTP POST方式发送类似“表单字段”的多类型数据,相当于同时设置浏览器表单属性(method="POST",enctype="multipart/form-data"),可以使用此参数上传二进制文件。
如果字段内容以“@”开头,剩下的部分应该是文件名,curl将会上传此文件,如:
如果字段内容以“<”开头,剩下的部分应该是文件名,curl将从文件中获取作为此字段的值,如:curl -F "text=<text.txt" http://aiezu.com; | |
--form-string <key=value> | (HTTP)类似于“--form”,但是“@”、“<”无特殊含义; | |
-T file
--upload-file file |
通过“put”的方式将文件传输到远程网址;
| |
断点续传 | -C <offset>
--continue-at <offset> |
断点续转,从文件头的指定位置开始继续下载/上传;
|
-r <range>
--range <range> |
(HTTP/FTP/SFTP/FILE) 只传输内容的指定部分:
| |
认证 | --basic | (HTTP)告诉curl使用HTTP Basic authentication(HTTP协议时)。
|
--ntlm | (HTTP)使用NTLM身份验证方式,用于HTTP协议;
| |
--digest | (HTTP)使用HTTP Digest authentication加密,用于HTTP协议;
| |
--negotiate | (HTTP)使用GSS-Negotiate authentication方式,用于HTTP协议;
| |
--anyauth | (HTTP)告诉curl自动选择合适的身份认证方法,并选用最安全的方式; | |
-u user:password
--user user:password |
使用用户名、密码认证,此参数会覆盖“-n”、“--netrc”和“--netrc-optional”选项;
| |
证书 | -E <证书[:密码]>
--cert <证书[:密码]> |
(SSL)指定“PEM”格式的证书文件和证书密码; |
--cert-type <type> | (SSL)告诉curl所提供证书的类型:PEM、DER、ENG等;
| |
--cacert <CA证书> | (SSL)告诉curl所以指定的CA证书文件,必须是“PEM”格式; | |
--capath <CA证书路径> | (SSL)告诉curl所以指定目录下的CA证书用来验证;
| |
--crlfile <file> | (HTTPS/FTPS)提供一个PEM格式的文件,用于指定被吊销的证书列表; | |
-k
--insecure |
(SSL)设置此选项将允许使用无证书的不安全SSL进行连接和传输。 | |
SSL其他 | --ciphers <list of ciphers> | (SSL)指定SSL要使用的加密方式;如:“aes_256_sha_256”; |
--engine <name> | 设置一个OpenSSL加密引擎用于加密操作;
| |
--random-file | (SSL)指定包含随机数据的文件路径名;数据是用来为SSL连接产生随机种子为; | |
--egd-file <file> | (SSL)为随机种子生成器EGD(Entropy Gathering Daemon socket)指定的路径名; | |
-1/--tlsv1
--tlsv1.0 |
(SSL)使用 TLS版本2 与远程服务器通讯; (SSL)使用 TLS 1.0 版本与远程服务器通讯; | |
私钥公钥 | --key <key> | (SSL/SSH)指定一个私钥文件名;为指定时自动尝试使用下面文件:“~/.ssh/id_rsa”、“~/.ssh/id_dsa”、“./id_rsa'”、“./id_dsa”; |
--key-type <type> | (SSL)指定私钥文件类型,支持:DER、PEM、ENG,默认是PEM; | |
--pass <phrase> | (SSL/SSH)指定私钥文件的密码; | |
--pubkey <key> | (SSH)使用指定文件提供的您公钥; | |
FTP | -P
--ftp-port <接口> |
(FTP)FTP主动模式时,设置一个地址等待服务器的连接,如:
网卡: |
--crlf | (FTP)上传时将换行符(LF)转换为回车换行(CRLF); | |
--ftp-account [data] | (FTP)ftp帐号信息; | |
--ftp-method [method] | (FTP)可选值:multicwd / nocwd / singlecwd; | |
--ftp-pasv | (FTP)使用使用PASV(被动)/EPSV模式; | |
--ftp-skip-pasv-ip | (FTP)使用PASV的时,跳过指定IP; | |
--ftp-create-dirs | (FTP)上传时自动创建远程目录; | |
-l
--list-only |
(FTP)列出ftp文件列表; | |
-B
--use-ascii |
(FTP/LDAP)使用Ascii传输模式,用于FTP、LDAP;在ftp中相当与使用了“type=A;”模式。 | |
--disable-epsv | (FTP)告诉curl在PASV(被动模式)时不要使用EPSV; | |
--disable-eprt | (FTP)告诉curl在主动模式时禁用EPRT和LPRT; | |
限速 | --limit-rate <speed> | 限制curl使用的最大带宽;如果未指定单位,默认单位为“bytes/秒”。
|
-y
--speed-time <time> |
如果在一个快速时间内,下载速度低于每秒速度限制字节数,则下载将中止。
| |
-Y
--speed-limit <speed> |
如果下载速度低于此给定速度(以字节/秒为单位)达数秒,则会中止下载。
| |
其他选项 | -0/--http1.0 | (HTTP) 强制curl使用HTTP 1.0而不是使用默认的HTTP 1.1; |
--interface <name> | 使用指定的网卡接口访问;
| |
-X <command>
--request <command> |
(HTTP)指定与服务器通信使用的请求方法,如:GET、PUT、POST、DELETE等,默认GET; | |
--keepalive-time <seconds> | 设置keepalive时间 | |
--no-keepalive | 关闭keepalive功能; | |
--no-buffer | 禁用对输出流缓冲; | |
--buffer | 启用输出流缓冲; | |
-L
--location |
(HTTP/HTTPS)追随http响应头“Location:”定向到跳转后的页面;
(在http响应码为3XX时使用,如301跳转、302跳转) | |
--location-trusted | (HTTP/HTTPS)同“--location”,但跳转后会发送跳转前的用户名和密码; | |
--compressed | (HTTP)请求对返回内容使用压缩算法进行压缩;curl支持对gzip压缩进行解压; | |
--connect-timeout <seconds> | 指定最大连接超时,单位“秒”; | |
-m seconds
--max-time seconds |
限制整个curl操作的最长时间,单位为秒; | |
-s
--silent |
安静模式。不要显示进度表或错误消息; | |
-#
--progress-bar |
显示进度条; | |
错误选项 | -f
--fail |
(HTTP)连接失败时(400以上错误)不返回默认错误页面,而是返回一个curl错误码“22”; |
--retry <num>
--retry-delay <seconds> |
失败重试次数;
重试间隔时间; | |
-S
--show-error |
安静模式下显示错误信息; | |
--stderr <file> | 错误信息保存文件; | |
输出 | -o file
--output file |
将返回内容输出到文件。
|
-O
--remote-name |
将返回内容输出到当前目录下,和url中文件名相同的文件中(不含目录); | |
--create-dirs | 与“-o”参数配合使用,创建必要的本地目录层次结构 | |
-w
--write-out format |
操作完成后在返回信息尾部追加指定的内容;
| |
调试 | -trace <file> | 转储所有传入和传出的数据到文件,包括描述信息;
|
--trace-ascii file | 转储所有传入和传出的数据到文件,包括描述信息,只转储ASCII部分,更容易阅读;
| |
--trace-time | 转储文件中添加时间信息; | |
-K
--config <config file> |
从配置文件中读取参数。 | |
-v
--verbose |
显示更详细的信息,调试时使用; | |
帮助 | -M
--manual |
显示完整的帮助手册; |
-h
--help |
linux curl用法帮助; |
命令 | 描述 |
---|---|
相关方法: