Linux之curl命令

Linux 之 curl命令

基本使用

# 访问百度网址,终端会打印出百度的html文件内容
curl www.baidu.com

通用语法

curl [option] [url]
# option: 参数设置,可设置请求数据或者指定你需要的部分响应数据,如:响应头信息、响应cookie、请求cookie等
# url: 需要请求的网站网址

参数Option列举

本人使用curl --help列举的参数项

--abstract-unix-socket     	# 连接unix socket接口
--alt-svc <file name>		# 使用指定文件开启http2转换http3/QUIC(alt-svc)
--anyauth       			# 选择身份认证方法
-a, --append        # 上传时追加到文件,不覆盖原本的文件,如果文件不存在就创建
--basic         	# 使用http基本身份认证	
--cacert <file>		# 认证对等方CA证书
--capath <dir>  	# 验证对等方的CA目录
-E, --cert <certificate[:password]> # 客户端证书文件和密码
--cert-status   	# 验证服务器证书的状态
--cert-type <type>  # 证书文件类型(DER/PEM/ENG)
--ciphers <list of ciphers> # 要使用的SSL密码
--compressed    	# 请求压缩响应
--compressed-ssh 	# 启用SSH压缩
-K, --config <file> # 从文件读取配置
--connect-timeout <seconds> # 允许连接的最长时间
--connect-to <HOST1:PORT1:HOST2:PORT2> # 连接到主机
-C, --continue-at <offset> # 恢复传输偏移
-b, --cookie <data|filename> # 从字符串/文件发送Cookie
-c, --cookie-jar <filename>  # 操作后将cookie写入指定文件
--create-dirs   		# 创建必要的本地目录层次结构
--crlf          		# 上传时将LF转换为CRLF
--crlfile <file> 		# 从给定文件获取PEM格式的CRL列表
-d, --data <data>   	# HTTP POST数据
--data-ascii <data> 	# HTTP POST ASCII数据
--data-binary <data>    # HTTP POST 二进制数据
--data-raw <data> 		# HTTP POST 数据,压缩
--data-urlencode <data> # HTTP POST数据url编码
--delegation <LEVEL> 	# GSS-API 授权许可
--digest        		# 使用HTTP摘要身份验证
-q, --disable       	# 禁用.curlrc
--disable-eprt  		# 使用EPRT或LPRT抑制
--disable-epsv  		# 使用EPSV抑制
--disallow-username-in-url 	# 不允许在url中使用用户名
--dns-interface <interface> # 用于DNS请求的接口
--dns-ipv4-addr <address> 	# 用于DNS请求的IPv4地址
--dns-ipv6-addr <address>   # 用于DNS请求的IPv6地址
--dns-servers <addresses> 	# 要使用的DNS服务器地址
--doh-url <URL> 			# 通过DOH解析主机名
-D, --dump-header <filename> # 将收到的头文件写入指定文件
--egd-file <file> 			# 随机数据的EGD套接字路径
--engine <name> 			# 要使用的加密引擎
--expect100-timeout <seconds> # 超时时间
-f, --fail         			# HTTP错误时无提示失败(完全没有输出)
--fail-early    			# 第一次传输错误时失败,不继续
--false-start   			# 启用TLS错误启动
-F, --form <name=content> 	# 指定多部分MIME数据
--form-string <name=string> # 指定多部分MIME数据
--ftp-account <data> 		# 帐户数据字符串
--ftp-alternative-to-user <command> # 替换用户[名称]的字符串
--ftp-create-dirs 			# 如果不存在,则创建远程目录
--ftp-method <method> 		# 控制CWD使用
--ftp-pasv      			# 使用PASV/EPSV代替端口
-P, --ftp-port <address> 	# 使用端口而不是PASV
--ftp-pret      			# 在PASV之前发送PRET
--ftp-skip-pasv-ip 			# 跳过PASV的IP地址
--ftp-ssl-ccc   			# 验证后发送CCC
--ftp-ssl-ccc-mode <active/passive> # 设置CCC模式
--ftp-ssl-control 			# FTP登录需要SSL/TLS,清除传输
-G, --get           		# 将post数据放在URL中并使用GET
-g, --globoff       		# 使用{}和[]禁用URL序列和范围
--happy-eyeballs-timeout-ms <milliseconds> # 在尝试IPv4之前,IPv6要等待多长时间(以毫秒为单位)
--haproxy-protocol 			# 发送HAProxy代理协议v1头
-I, --head          		# 仅显示文档信息
-H, --header <header/@file> # 将自定义标头传递到服务器
-h, --help          		# 查看命令帮助文档
--hostpubmd5 <md5> 			# 主机公钥的可接受MD5哈希
--http0.9       			# 允许HTTP 0.9响应
-0, --http1.0       		# 使用HTTP 1.0
--http1.1       			# 使用HTTP 1.1
--http2         			# 使用HTTP 2.0
--http2-prior-knowledge 	# 使用不带HTTP/1.1升级的HTTP 2
--ignore-content-length 	# 忽略远程资源的大小
-i, --include       		# 在输出中包括协议响应头
-k, --insecure      		# 使用SSL时允许不安全的服务器连接
--interface <name> 			# 使用网络接口(或地址)
-4, --ipv4          		# 将名称解析为IPv4地址
-6, --ipv6          		# 将名称解析为IPv6地址
-j, --junk-session-cookies 	# 忽略从文件读取的会话cookies
--keepalive-time <seconds> 	# 保持激活探测的间隔时间
--key <key>     			# 私钥文件名
--key-type <type> 			# 私钥文件类型 (DER/PEM/ENG)
--krb <level>   			# 启用具有安全性<level>
--libcurl <file> 			# 转储此命令行的等效代码
--limit-rate <speed> 		# 限制传输速度至速率
-l, --list-only     		# 仅列表模式
--local-port <num/range> 	# 强制使用本地端口号的范围
-L, --location      		# 遵循重定向
--location-trusted 			# 例如--location,并将auth发送给其他主机
--login-options <options> 	# 服务器登录选项
--mail-auth <address> 		# 原始电子邮件的发件人地址
--mail-from <address> 		# 来自此地址的邮件
--mail-rcpt <address> 		# 邮寄到此地址
-M, --manual        		# 显示完整手册
--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进行身份验证
--oauth2-bearer <token> 	# OAuth 2承载令牌
-o, --output <file> 		# 写入文件而不是标准输出
--pass <phrase> 			# 私钥的密码短语
--path-as-is    			# 不要挤压。。URL路径中的序列
--pinnedpubkey <hashes> 	# 文件/哈希公钥以验证对等方
--post301       			# 遵循301后不要切换到GET
--post302       			# 遵循302后不要切换到GET
--post303       			# 遵循301后不要切换到GET
--preproxy [protocol://]host[:port] # 先使用此代理
-#, --progress-bar  		# 将传输进度显示为条形图
--proto <protocols> 		# 启用/禁用协议
--proto-default <protocol>  # 对任何缺少方案的URL使用协议
--proto-redir <protocols> 	# 启用/禁用重定向协议
-x, --proxy [protocol://]host[:port] # 使用此代理
--proxy-anyauth 			# 选择任何代理身份验证方法
--proxy-basic   			# 在代理上使用基本身份验证
--proxy-cacert <file> 		# 用于验证对等代理的CA证书
--proxy-capath <dir> 		# 验证对等代理的CA目录
--proxy-cert <cert[:passwd]> # 为代理设置客户端证书
--proxy-cert-type <type> 	# HTTPS代理的客户端证书类型
--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-tls13-ciphers <ciphersuite list> # TLS 1.3代理密码套件
--proxy-tlsauthtype <type>  # HTTPS代理的TLS身份验证类型
--proxy-tlspassword <string> # HTTPS代理的TLS密码
--proxy-tlsuser <name> 		# HTTPS代理的TLS用户名
--proxy-tlsv1   			# 对HTTPS代理使用TLSv1
-U, --proxy-user <user:password> # 代理用户和密码
--proxy1.0 <host[:port]> 	# 在给定端口上使用HTTP/1.0代理
-p, --proxytunnel   		# 通过HTTP代理隧道操作(使用CONNECT)
--pubkey <key>  			# SSH公钥文件名
-Q, --quote         		# 传输前向服务器发送命令
--random-file <file> 		# 用于从中读取随机数据的文件
-r, --range <range> 		# 仅检索范围内的字节
--raw           			# 执行HTTP“原始”;不传输解码
-e, --referer <URL> 		# 推荐人URL
-J, --remote-header-name 	# 使用提供的头文件名
-O, --remote-name   		# 将输出写入名为远程文件的文件
--remote-name-all 			# 对所有URL使用远程文件名
-R, --remote-time   		# 在本地输出上设置远程文件的时间
-X, --request <command> 	# 指定要使用的请求命令,请求方式GET/POST/PUT/DELETE等
--request-target 			# 指定此请求的目标
--resolve <host:port:address[,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
--ssl-allow-beast 			# 允许安全漏洞改进互操作
--ssl-no-revoke 			# 禁用证书吊销检查(Schannel)
--ssl-reqd      			# 需要SSL/TLS
-2, --sslv2         		# 使用SSLv2
-3, --sslv3         		# 使用SSLv3
--stderr       				# 重定向stderr的位置
--styled-output 			# 为HTTP头启用样式化输出
--suppress-connect-headers 	# 抑制代理连接响应头
--tcp-fastopen  			# 使用TCP快速打开
--tcp-nodelay   			# 使用TCP\u NODELAY选项
-t, --telnet-option <opt=val> # 设置telnet选项
--tftp-blksize <value> 		# 设置TFTP BLKSIZE选项
--tftp-no-options 			# 不发送任何TFTP选项
-z, --time-cond <time> 		#  基于时间条件的传输
--tls-max <VERSION> 		# 设置允许的最大TLS版本
--tls13-ciphers <list of TLS 1.3 ciphersuites> # 要使用的TLS 1.3密码套件
--tlsauthtype <type> 		# TLS身份验证类型
--tlspassword   			# TLS密码
--tlsuser <name> 			# TLS用户名
-1, --tlsv1         		# 使用TLSv1.0或更高版本
--tlsv1.0       			# 使用TLSv1.0或更高版本
--tlsv1.1       			# 使用TLSv1.1或更高版本
--tlsv1.2       			# 使用TLSv1.2或更高版本
--tlsv1.3       			# 使用TLSv1.3或更高版本
--tr-encoding   			# 请求压缩传输编码
--trace <file>  			# 将调试跟踪写入文件
--trace-ascii <file> 		# 将调试跟踪写入文件,但没有十六进制输出
--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       		# 显示版本号并退出
-w, --write-out <format> 	# 完成后使用输出格式
--xattr         			# 在扩展文件属性中存储元数据
  • 以上参数均为翻译而来的解释,谨慎理解。
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值