curl 命令帮助及使用
前言
刚接触 curl 就发现它的非常强大。奈何帮助文档全是英文,看起来贼费劲。无奈只能硬着头皮用自己蹩脚的英语和翻译软件硬生生的翻译了一下 ,以便后续查阅使用。在这之前没有发现已有翻译过且详细的实例博客。偶然意外看到一篇详情博客。转到详情博客
一、简介
curl
是一种命令行工具,用于传输使用URL语法指定的数据.是一个非常强大的工具,支持多种协议。这里就不过得介绍了,详情请看官网介绍
官网地址:https://curl.haxx.se/
GitHub地址:https://github.com/curl/curl
二、curl 帮助文档
格式: curl [options...] <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-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 显示当前帮助文档
--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 必须读取.netrc以获取用户名和密码
--netrc-file <filename> 为netrc指定文件
--netrc-optional 使用.netrc或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-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域套接字连接
-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 的使用
# 显示响应首部信息
curl -I www.baidu.com
# 模拟浏览器
curl -A "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.25" www.baidu.com
# 静默模式,不显示curl进度
curl -s www.baidu.com
# 显示一次通信详情信息
curl -v www.baidu.com
# 显示详情并时间戳跟踪
curl -v --trace-time www.baicu.com
# 指定 GET 请求访问百度,
curl -X GET www.baidu.com 同 curl -G www.baidu.com
# 向 httpbin.org 发送 POST 请求
curl -s -X POST "http://www.httpbin.org/post" -H "accept: application/json"
# 自定义Header至百度
curl -H "name:zzw" www.baidu.com
参考博客:
https://www.cnblogs.com/doseoer/p/7044344.html
https://www.jianshu.com/p/3aecc761fb9e
curl 命令帮助及使用的更多相关文章
- curl命令使用
curl命令可以用来构造http请求.参数有很多,常用的参数如下: 通用语法:curl [option] [URL...]在处理URL时其支持类型于SHELL的名称扩展功能,如http://www.j ...
- curl命令行使用
curl 命令使用 原文地址:http://blog.sina.com.cn/s/blog_4b9eab320100slyw.html 可以看作命令行浏览器 1.开启gzip请求curl -I h ...
- CURL命令报错:dyld: lazy symbol binding failed: Symbol not found: _SSL_load_error_strings解决办法
Mac OS X 10.11.6, curl 命令报错,错误如下: dyld: lazy symbol binding failed: Symbol not found: _SSL_load_erro ...
- CURL命令详解
curl命令是一个强大的网络工具,它能通过http,ftp等方式下载.上传文件.其中curl远不止这些功能,大家可以通过阅读手册获取更多的信息,类似的工具还有wget. curl命令使用了libcur ...
- limux curl命令
linux curl命令很强大: http://blog.chinaunix.net/uid-14735472-id-3413867.html curl是一种命令行工具,作用是发出网络请求,然后得到和 ...
- linux curl 命令详解,以及实例
linux curl是一个利用URL规则在命令行下工作的文件传输工具.它支持文件的上传和下载,所以是综合传输工具,但按传统,习惯称url为下载工具. 一,curl命令参数,有好多我没有用过,也不知道翻 ...
- 使用curl命令操作elasticsearch
使用curl命令操作elasticsearch 大岩不灿 发表于 2015年4月25日 浏览 7,426 次 第一:_cat系列_cat系列提供了一系列查询elasticsearch集群状态的接口.你 ...
- Linux之curl命令详解
url命令是一个功能强大的网络工具,它能够通过http.ftp等方式下载文件,也能够上传文件.其实curl远不止前面所说的那些功能,大家可以通过man curl阅读手册页获取更多的信息.类似的工具还有 ...
- zabbix通过curl命令判断web服务是否正常并自动重启服务
zabbix通过curl命令判断web服务是否正常并自动重启服务 主要思路: 通过curl命令获取服务器响应码,如果正常返回200,不正常返回000 具体命令: curl -I -s -w " ...
- curl 命令行应用
我一向以为,curl只是一个编程用的函数库. 最近才发现,这个命令本身,就是一个无比有用的网站开发工具,请看我整理的它的用法. =================================== ...
随机推荐
- Python与JAVA的异同
--效率: 作为静态语言的JAVA执行效率比动态型语言的Python高 --语法: Python语句更精简. JAVA中的所有变量需要先声明(类型),才能使用,Python不需要声明变量类型 Pyth ...
- 【TCP】TCP状态
下图所示,TCP通信过程包括三个步骤:建立TCP连接通道(三次握手).数据传输.断开TCP连接通道(四次挥手). 这里进一步探究TCP三路握手和四次挥手过程中的状态变迁以及数据传输过程.先看TCP状态 ...
- SP8222 NSUBSTR - Substrings(后缀自动机+dp)
传送门 解题思路 首先建出\(sam\),然后把\(siz\)集合通过拓扑排序算出来.对于每个点只更新它的\(maxlen\),然后再从大到小\(dp\)一次就行了.因为\(f[maxlen-1]&g ...
- 使用 windsor 实现IOC 和 AOP
代码很简单,不多说. 对于拦截,windsor 使用动态代理的方式,即生成继承类的方式来实现的,因此无法拦截private 方法,因为无法在继承类中看见private方法. using System; ...
- 如何在Python中让两个print()函数的输出打印在一行内?
1.两个连续的print()函数为什么在输出时内容会分行显示? 解:print()中有两个默认参数sep和end,其中sep是代替分隔符,end是代替末尾的换行符,默认使用‘,’代替空格,且默认末尾加 ...
- 通过Bochs分析Lilo启动Linux内核的过程
1. Bochs调试 参考:http://www.cnblogs.com/long123king/p/3414884.html http://bochs.sourceforge.net/cgi-bin ...
- AWT Button类
按钮是一个控制组件,按下时有一个标签,并生成一个事件.当按钮被按下和释放,AWT发送ActionEvent的一个实例的按钮,通过调用按钮上的processEvent.按钮的processEvent方法 ...
- JSoup安装
要运行任何jsoup示例,需要先安装好jsoup相关Jar包.到目前为止(2017年05月),jsoup的当前版本是1.10.2.0.安装jsoup主要有三种方法: 通过Maven的pom.xml配置 ...
- C#比较两个日期的大小
DateTime dt1 = DateTime.Parse("2006-04-01"); DateTime dt2 = DateTime.Parse("2006-05-0 ...
- 10 个轻松学会 CSS3 的优秀在线资源
本文包揽 CSS 的所有关键点,并且引入了最新的 CSS3 版本.这个先进的技术提供超级多的新标签和属性,使得 Web 设计构建创新更简单,帮助开发者创建具有新趋势,带有漂亮布局的 Web 页面.随着 ...