curl命令帮助及使⽤
⽬录
前⾔
刚接触curl 就发现它的⾮常强⼤。奈何帮助⽂档全是英⽂,看起来贼费劲。⽆奈只能硬着头⽪⽤⾃⼰蹩脚的英语和翻译软件硬⽣⽣的翻译了⼀下,以便后续查阅使⽤。在这之前没有发现已有翻译过且详细的实例博客。偶然意外看到⼀篇详情博客。
格式: curl [] <url>
Options: (H) 仅表⽰HTTP/HTTPS 协议, (F) 仅表⽰ FTP 协议
--abstract-unix-socket <path> 通过抽象的Unix域套接字连接
--anyauth 选择任何⾝份验证⽅法(H)
-a, --append 上传时附加到⽬标⽂件(F/SFTP)
--basic 使⽤HTTP基本⾝份验证(H)
--cacert <file> ⽤于验证对等端的CA证书(SSL)
--capath <dir> ⽤于验证对等机的CA⽬录(SSL)
-E, --cert CERT[:PASSWD] 客户端证书⽂件和密码(SSL)
--cert-status 验证服务器证书的状态(SSL)
--cert-type <type> 证书⽂件类型(der/pem/eng)(SSL)
--ciphers <list of ciphers> 要使⽤的SSL密码(SSL)
--compressed 请求压缩响应(使⽤deflate或gzip)
--compressed-ssh 启⽤ssh压缩
-K, --config <file> 指定要读取的配置⽂件
-
-connect-timeout <seconds> 连接允许的最长时间
--connect-to <HOST1:PORT1:HOST2:PORT2> 连接到主机
-C, --continue-at OFFSET 恢复传输偏移量
-b, --cookie <data> 从 string/file 发送 cookie(H)
-c, --cookie-jar <filename> 操作后将cookie写⼊<filename>
--create-dirs 创建必要的本地⽬录层次结构
--crlf 上载时将 LF 转换为 CRLF
--crlfile <file> 从给定的⽂件获取PEM格式的CRL列表
-d, --data <data> HTTP Post 数据(H)
--data-ascii <data> HTTP POST ASCII 数据(H)
--data-binary <data> HTTP POST ⼆进制数据(H)
-
-data-raw <data> HTTP POST data, 允许 '@' 字符(H)
--data-urlencode <data> HTTP POST url 编码数据(H)
--delegation <LEVEL> GSS-API授权权限
--digest 使⽤HTTP摘要⾝份验证(H)
-q, --disable 禁⽤.currlc
--disable-eprt 禁⽌使⽤EPRT或LPRT(F)
--disable-epsv 禁⽌使⽤EPSV(F)
--dns-interface <interface> ⽤于DNS请求的接⼝
--dns-ipv4-addr <address> ⽤于DNS请求的IPv4地址
--dns-ipv6-addr <address> ⽤于DNS请求的IPv6地址
- -dns-servers <addresses> 要使⽤的DNS服务器地址
-
D, --dump-header <filename> 将接收到的头写⼊<filename>
--egd-file <file> 随机数据的EGD套接字路径(SSL)
--engine <name> 要使⽤的加密引擎
--expect100-timeout <seconds> 要等多久才能100继续
-f, --fail HTTP错误时不显⽰(完全没有输出)(H)
--fail-early 第⼀次传输失败,不继续
--false-start 启动 TLS=False 启动
-F, --form <name=content> 指定HTTP多部分发布数据(H)
--form-string <name=string> 指定多部分MIME数据
--ftp-account <data> 帐户数据字符串(F)
--ftp-alternative-to-user <command> 替换⽤户的字符串[名称](F)
-
-ftp-create-dirs 创建远程⽬录(如果不存在)(F)
--ftp-method <method> 控制CWD使⽤(F)
--ftp-pasv 使⽤pasv/epsv⽽不是port(F)
-P, --ftp-port <address> 使⽤ PORT ⽽不是PASV(F)
--ftp-pret 在pasv之前发送pret(F)
--ftp-skip-pasv-ip 跳过PASV的IP地址(F)
--ftp-ssl-ccc 认证后发送CCC(F)
--ftp-ssl-ccc-mode <active/passive> 设置CCC模式(F)
--ftp-ssl-ccc-mode <active/passive> 设置CCC模式(F)
--ftp-ssl-control ftp登录需要ssl/tls,传输清除(F)
-G, --get 以get的⽅式来发送数据(H)
-
g, --globoff 使⽤{} 和 [] 禁⽤URL序列和范围
--happy-eyeballs-timeout-ms 尝试ipv4之前等待ipv6的时间(以毫秒计)-I, --head 仅显⽰响应⾸部信息
--haproxy-protocol 发送haproxy代理协议头
-H, --header <header/@file> 将⾃定义头传递到服务器
-h, --help 显⽰当前帮助⽂档curl是什么命令
--hostpubmd5 <md5> 主机公钥的可接受MD5哈希(SSH)
-0, --http1.0 使⽤ HTTP 1.0(H)
--http1.1 使⽤ HTTP 1.1
--http2 使⽤ HTTP 2
--http2-prior-knowledge 使⽤HTTP 2⽽不升级HTTP/1.1
--ignore-content-length 忽略远程资源的⼤⼩
-i, --include 在输出中包含协议响应头(H/F)
-k, --insecure 使⽤SSL时允许不安全的服务器连接(H)
--interface <name> 使⽤⽹络接⼝(或地址)
-4, --ipv4 将名称解析为IPv4地址
-6, --ipv6 将名称解析为IPv6地址
-j, --junk-session-cookies 忽略从⽂件读取的会话cookie(H)
--keepalive-time <seconds> 保持探针的间隔时间
--key <key> 私钥⽂件名(SSL/SSH)
--key-type <type> 私钥⽂件类型 (DER/PEM/ENG)(SSL)
--krb <level> 启⽤具有安全性的Kerberos<level>(F)
--libcurl <file> 转储此命令⾏的libcurl等效代码
-
-limit-rate <speed> 限制传输速率
-l, --list-only 仅列出ftp⽬录的名称(F)
--local-port <num/range> 强制使⽤本地端⼝号的范围
-L, --location 跟踪重定向(H)
--location-trusted 像--location样,并将auth发送到其他主机(H)
--login-options <options> 服务器登录选项
--mail-auth <address> 原始电⼦邮件的发起⼈地址
--mail-from <address> 来⾃此地址的邮件
--mail-rcpt <address> 邮寄到此地址
-M, --manual 显⽰curl完整⼿册
--max-filesize <bytes> 要下载的最⼤⽂件⼤⼩
-
-max-redirs <num> 允许的最⼤重定向数
-m, --max-time <seconds> 允许传输的最长时间
--metalink 将给定的URL作为metalink xml⽂件处理
--negotiate 使⽤HTTP协商(SPNEGO)⾝份验证
-n, --netrc 必须读取rc以获取⽤户名和密码
--netrc-file <filename> 为netrc指定⽂件
--netrc-optional 使⽤rc或url
-:, --next 使下⼀个URL使⽤其单独的选项集
--no-alpn 禁⽤ALPN TLS扩展
-N, --no-buffer 禁⽤输出流的缓冲
--no-keepalive 在连接上禁⽤tcp keepalive
-
-no-npn 禁⽤NPN TLS扩展
--no-sessionid 禁⽤SSL会话ID重⽤
--noproxy <no-proxy-list> 不使⽤代理的主机列表
--ntlm 使⽤HTTP NTLM⾝份验证
--ntlm-wb 对WinBind使⽤HTTP NTLM⾝份验证
--oauth2-bearer <token> OAuth 2 Bearer Token
-o, --output <file> 写⼊⽂件⽽不是stdout
--pass <phrase> 私钥的密码短语
--path-as-is 不要挤压……URL路径中的序列
--pinnedpubkey <hashes> ⽂件/哈希⽤于验证对等机的公钥
--post301 在301重定向后不要切换到GET
-
-post302 在302重定向后不要切换到GET
--post303 在303重定向后不要切换到GET
--preproxy [protocol://]host[:port] ⾸先使⽤此代理
-#, --progress-bar 将传输进度显⽰为条形图
--proto <protocols> 启⽤/禁⽤协议
--proto-default <protocol> 对任何缺少⽅案的URL使⽤协议
--proto-redir <protocols> 在重定向时启⽤/禁⽤协议
-x, --proxy [protocol://]host[:port] 使⽤此代理
--proxy-anyauth 选择任何代理⾝份验证⽅法 (H)
--proxy-basic 在代理上使⽤基本⾝份验证(H)
--proxy-cacert <file> ⽤于验证对等代理的CA证书(H)
-
-proxy-capath <dir> ⽤于验证代理对等机的CA⽬录(H)
--proxy-cert <cert[:passwd]> 设置代理的客户端证书(H)
--proxy-cert-type <type> HTTS代理的客户端证书类型(H)
--proxy-ciphers <list> ⽤于代理的SSL密码
--proxy-crlfile <file> 为代理设置⼀个CRL列表
--proxy-digest 在代理上使⽤摘要式⾝份验证
--proxy-digest 在代理上使⽤摘要式⾝份验证
--proxy-header <header/@file> 将⾃定义头传递给代理
--proxy-insecure 在不验证代理的情况下执⾏HTTPS代理连接
--proxy-key <key> HTTPS代理的私钥
--proxy-key-type <type> 代理的私钥⽂件类型
-
-proxy-negotiate 在代理上使⽤HTTP协商(SPNEGO)⾝份验证    --proxy-ntlm 在代理上使⽤NTLM⾝份验证
--proxy-pass <phrase> https代理的私钥的密码短语
--proxy-pinnedpubkey <hashes> ⽤于验证代理的公钥的⽂件/哈希    --proxy-service-name <name> SPNEGO代理服务名称
--proxy-ssl-allow-beast 允许HTTPS代理的互操作存在安全缺陷
--proxy-tlsauthtype <type> HTTPS代理的TLS⾝份验证类型
--proxy-tlspassword <string> HTTPS代理的TLS密码
--proxy-tlsuser <name> HTTPS代理的TLS⽤户名
--proxy-tlsv1 将tlsv1⽤于HTTPS代理
-U, --proxy-user <user:password> 代理⽤户和密码
--proxy1.0 <host[:port]> 在给定端⼝上使⽤HTTP/1.0代理
-p, --proxytunnel 通过HTTP代理隧道操作(使⽤connect)
--pubkey <key>  ssh公钥⽂件名
-Q, --quote <cmd> 传输前将命令发送到服务器
--random-file <file> 从⽂件中读取随机数据(SSL)
-r, --range <range> 仅检索范围内的字节
--raw 执⾏http“raw”;⽆传输解码(H)
-e, --referer <URL> 引⽤URL(H)
-J, --remote-header-name 使⽤header提供的⽂件名
-O, --remote-name 将输出写⼊名为远程⽂件的⽂件
--remote-name-all 对所有URL使⽤远程⽂件名
-R, --remote-time 在本地输出上设置远程⽂件的时间
-
X, --request <command> 指定要使⽤的请求命令
--request-target 指定此请求的⽬标
--resolve <host:port:address> 将主机+端⼝解析为此地址
--retry <num> 如果出现暂时性问题,请重试请求
--retry-connrefused 拒绝连接时重试(与--retry⼀起使⽤)
--retry-delay <seconds> 两次重试之间的等待时间
--retry-max-time <seconds> 仅在此期间内重试
--sasl-ir 在SASL⾝份验证中启⽤初始响应
--service-name <name> SPNEGO服务名称
-S, --show-error 显⽰错误,即使使⽤-s
-s, --silent 静⾳模式
-
-socks4 <host[:port]> 指定主机+端⼝上的socks4代理
--socks4a <host[:port]> 指定主机+端⼝上的socks4a代理
--socks5 <host[:port]> 指定主机+端⼝上的socks5代理
--socks5-basic 为socks5代理启⽤⽤户名/密码验证
--socks5-gssapi 为socks5代理启⽤GSS-API⾝份验证
--socks5-gssapi-nec 与NEC Socks5服务器的兼容性
--socks5-gssapi-service <name> GSS-API的socks5代理服务名称    --socks5-hostname <host[:port]> socks5代理,将主机名传递给代理-Y, --speed-limit <speed> 停⽌⽐此慢的传输
-y, --speed-time <seconds> 在此时间后触发“速度限制”中⽌
--ssl 尝试ssl/tls (FTP, IMAP, POP3, SMTP)
--ssl-allow-beast 允许安全缺陷改进互操作
--ssl-no-revoke 禁⽤证书吊销检查(WinSL)
--ssl-reqd 需要SSL/TLS(FTP, IMAP, POP3, SMTP)
-2, --sslv2 使⽤SSLv2(SSL)
-3, --sslv3 使⽤SSLv3(SSL)
--stderr 重定向stderr的位置
--suppress-connect-headers 禁⽌代理连接响应头(SSL)
--tcp-fastopen 使⽤TCP快速打开
--tcp-nodelay 使⽤tcp_nodelay选项
-t, --telnet-option <opt=val> 设置telnet选项
--tftp-blksize <value> 设置tftp blksize选项
--tftp-no-options 不要发送任何TFTP选项
-z, --time-cond <time> 基于时间条件的传输
-
-tls-max <VERSION> 使⽤TLSV1.0或更⾼版本
--tlsauthtype <type> TLS⾝份验证类型
--tlspassword  TLS密码
--tlsuser <name> TLS⽤户名
-1, --tlsv1 使⽤TLSV1.0或更⾼版本(SSL)
--tlsv1.0 使⽤TLSv1.0(SSL)
--tlsv1.1 使⽤TLSv1.1(SSL)
--tlsv1.2 使⽤TLSv1.2(SSL)
--tlsv1.3 使⽤TLSv1.3(SSL)
--tr-encoding 请求压缩传输编码(H)
--trace <file> 将调试跟踪写⼊⽂件
-
-trace-ascii <file> 如 --trace,但⽆⼗六进制输出
--trace-time 向跟踪/详细输出添加时间戳
--unix-socket <path> 通过这个Unix域套接字连接
--unix-socket <path> 通过这个Unix域套接字连接
-T, --upload-file <file> 将本地⽂件传输到⽬标
--url <url> 要使⽤的URL
-B, --use-ascii 使⽤ASCII/⽂本传输
-u, --user <user:password> 服务器⽤户和密码
-A, --user-agent <name> 将⽤户代理<name>发送到服务器
-v, --verbose 打印操作的详情信息
-V, --version 显⽰ curl 的版本号
-
w, --write-out <format> 完成后使⽤输出格式
--xattr 将元数据存储在扩展⽂件属性中
# 显⽰响应⾸部信息
curl -I www.baidu
# 模拟浏览器
curl -A "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.25"  www.baidu
# 静默模式,不显⽰curl进度
curl -s www.baidu
# 显⽰⼀次通信详情信息
curl -v www.baidu
# 显⽰详情并时间戳跟踪
curl -v --trace-time www.baicu
# 指定 GET 请求访问百度,
curl -X GET www.baidu  同 curl -G www.baidu
# 向 发送 POST 请求
curl -s -X POST "/post" -H "accept: application/json"
# ⾃定义Header⾄百度
curl -H "name:zzw" www.baidu

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。