说明 - curl的简单使用

Posted by morouu on 2021-12-27
Estimated Reading Time 26 Minutes
Words 5.5k In Total
Viewed Times

说明 - curl的简单使用


- curl简介 -

cURL是一个利用URL语法在命令行下工作的文件传输工具,1997年首次发行。它支持文件上传和下载,所以是综合传输工具,但按传统,习惯称cURL为下载工具。cURL还包含了用于程序开发的libcurl。

- 常用参数 -

参数 描述
-I/–head 只显示传输文档,经常用于测试连接本身
-o/–output 把输出写到该文件中,必须输入保存文件名
-O/–remote-name 把输出写到该文件中,保留远程文件的文件名
-F/–form 模拟表单提交
-s/–silent 静默模式,不输出任何东西
-S/–show-error 显示错误,在选项 -s 中,当 curl 出现错误时将显示
-L/–location 跟踪重定向
-f/–fail 不输出错误
-n/–netrc 从netrc文件中读取用户名和密码
–netrc-optional 使用 .netrc 或者 URL来覆盖-n
–ntlm 使用 HTTP NTLM 身份验证
-N/–no-buffer 禁用缓冲输出
-p/–proxytunnel 使用HTTP代理
–proxy-anyauth 选择任一代理身份验证方法
–proxy-basic 在代理上使用基本身份验证
–proxy-digest 在代理上使用数字身份验证
–proxy-ntlm 在代理上使用ntlm身份验证
-P/–ftp-port 使用端口地址,而不是使用PASV
-M/–manual 显示全手动
-Q/–quote 文件传输前,发送命令到服务器
-r/–range 检索来自HTTP/1.1或FTP服务器字节范围
–range-file 读取(SSL)的随机文件
-R/–remote-time 在本地生成文件时,保留远程文件时间
–retry 传输出现问题时,重试的次数
–retry-delay 传输出现问题时,设置重试间隔时间
–retry-max-time 传输出现问题时,设置最大重试时间
–socks4 用socks4代理给定主机和端口
–socks5 用socks5代理给定主机和端口
-t/–telnet-option Telnet选项设置
–trace 对指定文件进行debug
–trace-ascii Like 跟踪但没有hex输出
–trace-time 跟踪/ 详细输出时,添加时间戳
-T/–upload-file 上传文件
-u/–user 设置服务器的用户和密码
-U/–proxy-user 设置代理用户名和密码
-V/–version 显示版本信息
-w/–write-out [format] 什么输出完成后
-x/–proxy 在给定的端口上使用HTTP代理
-X/–request 放弃限速所要的时间。默认为30
-y/–speed-time 指定什么命令
-Y/–speed-limit 停止传输速度的限制,速度时间’秒
-z/–time-cond 传送时间设置
-0/–http1.0 使用HTTP 1.0
-1/–tlsv1 使用TLSv1(SSL)
-2/–sslv2 使用SSLv2的(SSL)
-3/–sslv3 使用的SSLv3(SSL)
–3p-url 使用url,进行第三方传送
–3p-user 使用用户名和密码,进行第三方传送
-4/–ipv4 使用IP4
-6/–ipv6 使用IP6
-#/–progress-bar 用进度条显示当前的传送状态

- 常用参数分类 -

  • 调试类

    1
    2
    3
    4
    -v, --verbose                          输出信息
    -q, --disable 在第一个参数位置设置后 .curlrc 的设置直接失效,这个参数会影响到 -K, --config -A, --user-agent -e, --referer
    -K, --config FILE 指定配置文件
    -L, --location 跟踪重定向 (H)
  • CLI显示设置

    1
    2
    3
    4
    5
    6
    7
    -s, --silent                           Silent模式。不输出任务内容
    -S, --show-error 显示错误. 在选项 -s 中,当 curl 出现错误时将显示
    -f, --fail 不显示 连接失败时HTTP错误信息
    -i, --include 显示 response的header (H/F)
    -I, --head 仅显示 响应文档头
    -l, --list-only 只列出FTP目录的名称 (F)
    -\#, --progress-bar 以进度条 显示传输进度
  • 数据传输类

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    -X, --request [GET|POST|PUT|DELETE|…]  使用指定的 http method 例如 -X POST
    -H, --header <header> 设定 request里的header 例如 -H "Content-Type: application/json"
    -e, --referer 设定 referer (H)
    -d, --data <data> 设定 http body 默认使用 content-type application/x-www-form-urlencoded (H)
    --data-raw <data> ASCII 编码 HTTP POST 数据 (H)
    --data-binary <data> binary 编码 HTTP POST 数据 (H)
    --data-urlencode <data> url 编码 HTTP POST 数据 (H)
    -G, --get 使用 HTTP GET 方法发送 -d 数据 (H)
    -F, --form <name=string> 模拟 HTTP 表单数据提交 multipart POST (H)
    --form-string <name=string> 模拟 HTTP 表单数据提交 (H)
    -u, --user <user:password> 使用帐户,密码 例如 admin:password
    -b, --cookie <data> cookie 文件 (H)
    -j, --junk-session-cookies 读取文件中但忽略会话cookie (H)
    -A, --user-agent user-agent设置 (H)
  • 传输设置

    1
    2
    3
    -C, --continue-at OFFSET               断点续转
    -x, --proxy [PROTOCOL://]HOST[:PORT] 在指定的端口上使用代理
    -U, --proxy-user USER[:PASSWORD] 代理用户名及密码
  • 文件操作

    1
    2
    -T, --upload-file <file>               上传文件
    -a, --append 添加要上传的文件 (F/SFTP)
  • 输出设置

    1
    2
    3
    4
    -o, --output <file>                    将输出写入文件,而非 stdout
    -O, --remote-name 将输出写入远程文件
    -D, --dump-header <file> 将头信息写入指定的文件
    -c, --cookie-jar <file> 操作结束后,要写入 Cookies 的文件位置

- curl 简单的命令 -

  • 请求一个URL

    1
    2
    3
    4
    5
    curl --url "http://127.0.0.1/a.php"
    curl --url "ftp://127.0.0.1:6600/test.txt"
    curl --url "dict://127.0.0.1:4449"
    curl --url "gopher://127.0.0.1:4449/_POST"
    curl --url "file:///etc/issue"
  • 带认证的请求

    1
    2
    3
    4
    5
    curl --url "http://DQ:123@127.0.0.1/a.php"
    curl --url "ftp://DQ:123@127.0.0.1:4449/test.txt"
    curl --user "DQ:123" --url "http://127.0.0.1/a.php"
    curl --user "DQ:123" --url "ftp://127.0.0.1:4449/test.txt"
    curl -u "DQ:123" --url "http://127.0.0.1/a.php"
  • 自定义请求标头

    1
    2
    curl --url "http://127.0.0.1/a.php" -H "user-agent:DQV5"
    curl --url "http://127.0.0.1/a.php" -H "user-agent:DQV5" -H "cookie:a=b;c=d"
  • 关于cookie

    1
    2
    3
    curl --url "http://127.0.0.1/a.php" -b "PHPSESSID:xxxxxxx" # 手动设置cookie
    curl --url "http://127.0.0.1/a.php" -b "cookies.txt" # 使用cookie文件作为cookie
    curl --url "http://127.0.0.1/a.php" -c "cookies2.txt" # 将服务器设的cookie保存到本地cookies2.txt文件
  • 发送请求参数

    1
    2
    3
    4
    curl --url "http://127.0.0.1/a.php" -d "a=b" -d "c=d" # POST 方式
    curl --url "http://127.0.0.1/a.php" --data-urlencode "a= b" # POST 方式,会对请求内容进行编码
    curl --url "http://127.0.0.1/a.php" -G -d "a=b" # GET 方式
    curl --url "http://127.0.0.1/a.php" -G --data-urlencode "a= b" # GET 方式,会对请求内容进行编码
  • 模拟表单

    1
    2
    3
    4
    5
    curl --url "http://127.0.0.1/a.php" -F "a=b" -F "c=d" # 表单提交 POST 方式
    curl --url "http://127.0.0.1/a.php" -F "a=b" -G # 空表单提交 POST 方式,GET有a=b的参数
    curl --url "http://127.0.0.1/a.php" -F "file=@test.txt" # 表单上传test.txt文件,字段为file
    curl --url "http://127.0.0.1/a.php" -F "file=@test.txt;type=image/gif;filename=test.gif" # 表单上传test.txt文件,字段为file,类型为image/gif,文件名为test.gif
    curl --url "http://127.0.0.1/a.php" -F "file=@test.txt;type=image/gif;filename=test.gif" -F "submit=true" # 表单上传test.txt文件,字段为file,类型为image/gif,文件名为test.gif;并传入submit=true的参数
  • 跟随重定向

    1
    2
    3
    curl --url "http://127.0.0.1/302a.php" -L
    curl --url "http://127.0.0.1/302a.php" -L -d "a=b"
    curl --url "http://127.0.0.1/a.php" -F "file=@test.txt" # 表单上传test.txt文件,字段为file
  • 将服务器的回应保存成文件

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    curl --url "http://127.0.0.1/file.txt" -o "/tmp/file.txt" # 简单的将file.txt保存
    curl --url "http://127.0.0.1/file2.txt" -O # 简单保存为file2.txt
    curl --url "http://127.0.0.1/file.txt" -o "/tmp/file.txt" -# # 简单的将file.txt保存,显示进度条
    curl --url "http://127.0.0.1/file.txt" -o "/tmp/file.txt" -s # 简单的将file.txt保存,静默模式

    curl --url "http://127.0.0.1/file.txt" -r 0-1023 -o "/tmp/file1.txt"
    curl --url "http://127.0.0.1/file.txt" -r 1024-2047 -o "/tmp/file2.txt" # 分段保存为file1.txt和file2.txt,每次大小为1kb

    curl --user "DQ:123" --url "ftp://47.101.132.223:6600/test.txt" -o "test.txt"
    curl --user "DQ:123" --url "ftp://47.101.132.223:6600/test.txt" -O # 使用ftp简单下载文件

    curl --url "http://127.0.0.72:1000/img02.jpg" -C [起始偏移量(byte)(s)] -o "file.jpg"
    curl --url "http://127.0.0.72:1000/img02.jpg" -C [起始偏移量(byte)(s)] -O
    curl --url "http://127.0.0.72:1000/img02.jpg" -C - -O # 简单的断点续传
  • 简单上传文件

    1
    2
    3
    4
    5
    6
    7
    curl -T "file.txt" --user "DQ:123" --url "ftp://47.101.132.223:6600/" # ftp上传

    curl -T "{file1.txt,file2.txt}" --user "DQ:123" --url "ftp://47.101.132.223:6600/" # ftp上传多个文件

    curl -T - --user "DQ:123" --url "ftp://47.101.132.223:6600/new.txt" # 从标准输入获取内容保存到ftp服务器指定文件中

    curl -T "file.txt" --user "DQ:123" --url "http://127.0.0.72:1000/get.php" # PUT 上传
  • 通过代理

    1
    2
    3
    4
    5
    6
    7
    curl --proxy "socks5://127.0.0.1:6665" --proxy-user "DQ:123" --url "http://127.0.0.72:1000/get.php" # socks5 代理

    curl -x "socks5://127.0.0.1:6665" --proxy-user "DQ:123" --url "http://127.0.0.72:1000/get.php" # socks5 代理

    curl -x "127.0.0.1:6665" --proxy-user "DQ:123" --url "http://127.0.0.72:1000/get.php" # http 代理

    curl -x "socks4://127.0.0.1:6666" --proxy-user "DQ:123" --url "http://127.0.0.72:1000/get.php" # socks4 代理
  • 自定义用户代理

    1
    2
    curl --url "http://127.0.0.72:1000/get.php" -A "DQ"
    curl --url "http://127.0.0.72:1000/get.php" --user-agent "DQ"
  • 模拟限速

    1
    curl --url "http://127.0.0.1/a.php" --rate-limit 1000B 
  • 设置referer

    1
    curl --url "http://127.0.0.1/a.php" -e "https://google.com"

- curl 常用组合 -

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
# 发送GET请求
curl --url "http://127.0.0.72:1000/get.php"
curl --url "http://127.0.0.72:1000/get.php" -G -d "a=b" -H "user-agent:DQ"
curl --url "http://127.0.0.72:1000/get.php" -G -d "a=b" -A "DQ" -b "PHPSESSID:xxxxx"
curl --url "http://127.0.0.72:1000/get.php" -G --data-urlencode "a= !{}b" -A "DQ" -b "PHPSESSID:xxxxx"
curl --url "http://127.0.0.72:1000/get.php" -G --data-urlencode "a= !{}b" -A "DQ" -b "PHPSESSID:xxxxx" -L
curl --user "DQ:123" --url "http://127.0.0.72:1000/get.php" -G --data-urlencode "a= !{}b" -A "DQ" -b "PHPSESSID:xxxxx"

# 发送POST请求
curl --url "http://127.0.0.72:1000/get.php" -H "Content-Type:application/x-www-form-urlencoded"
curl --url "http://127.0.0.72:1000/get.php" -X POST
curl --url "http://127.0.0.72:1000/get.php" -d "a=b"
curl --url "http://127.0.0.72:1000/get.php" --data-urlencode "a= b"
curl --url "http://127.0.0.72:1000/get.php" --form "a=b"
curl --url "http://127.0.0.72:1000/get.php" --data-urlencode "a= b" -A "DQ" -b "PHPSESSID:xxxxx" -L
curl --user "DQ:123" --url "http://127.0.0.72:1000/get.php" --data-urlencode "a= b" -A "DQ" -b "PHPSESSID:xxxxx" -L

# 文件上传
curl --url "http://127.0.0.72:1000/get.php" --form "file=@file.txt"
curl --url "http://127.0.0.72:1000/get.php" --form "img=@file.gif;type=image/gif;filename=a.gif" --form "submit=true"
curl --user "DQ:123" --url "http://127.0.0.72:1000/get.php" --form "img=@file.gif;type=image/gif;filename=a.gif" --form "submit=true" -b "PHPSESSID:XXXXX" -A "DQ"
curl --user "DQ:123" --url "http://127.0.0.72:1000/get.php" --form "img=@file.gif;type=image/gif;filename=a.gif" --form "submit=true" -b "PHPSESSID:XXXXX" -A "DQ" -L -e "https://google.com"
curl --user "DQ:123" --url "http://127.0.0.72:1000/get.php" -X PUT -T "file.txt"
curl --user "DQ:123" --url "ftp://47.101.132.223:6600/" -T "file.txt"
curl --user "DQ:123" --url "ftp://47.101.132.223:6600/" -T "{file1.txt,file2.txt}"
curl --url "ftp://47.101.132.223:6600/new.txt" -T - --user "DQ:123" # 从标准输入获取内容到ftp服务器文件中

# 文件传输
curl --url "http://127.0.0.72:1000/get.php" -o "file.txt"
curl --url "http://127.0.0.72:1000/data.txt" -O
curl --url "http://127.0.0.72:1000/img.jpg" -r 0-1023 -o "img01.jpg"
curl --user "DQ:123" --url "http://127.0.0.72:1000/img.jpg" -r 1024-2047 -o "img01.jpg"
curl --user "DQ:123" --url "http://127.0.0.72:1000/get.php" -o "file.txt" --form "user=admin" --form "action=download" -b "PHPSESSID:xxxxxx" -A "DQ" -L
curl --user "DQ:123" --url "http://127.0.0.72:1000/data.txt" -C - -O
curl --url "ftp://47.101.132.223:6600/test.txt" -o "test.txt"
curl --user "DQ:123" --url "ftp://47.101.132.223:6600/test.txt" -o "test.txt"

# 使用代理
curl -x "socks5://127.0.0.1:2333"--url "http://127.0.0.72:1000/get.php"
curl -x "socks4://127.0.0.1:2334"--url "http://127.0.0.72:1000/get.php"
curl -x "http://127.0.0.1:2335"--url "http://127.0.0.72:1000/get.php"
curl -x "socks5://127.0.0.1:2333" --proxy-user "DQ:123"--url "http://127.0.0.72:1000/get.php"
curl --proxy "socks4://127.0.0.1:2334"--proxy-user "DQ:123" --user "DQ:123" --url "http://127.0.0.72:1000/get.php"
curl --proxy "socks5://127.0.0.1:2333" --proxy-user "DQ:123" --user "DQ:123" --url "ftp://47.101.132.223:6600/test.txt" -o "file.txt"

# 其他杂项
curl --url "http://127.0.0.72:1000/get.php" -i # 显示响应的所有内容
curl --url "http://127.0.0.72:1000/get.php" -I # 显示响应的头部
curl --user "DQ:123" --url "ftp://47.101.132.223:6600/" --list-only # 仅列出ftp所有文件
curl --url "http://127.0.0.72:1000/get.php" --trace - # 跟踪整个请求过程
curl --url "http://127.0.0.72:1000/get.php" -v # 显示整个请求过程的信息
curl --user "DQ:123" --url "http://127.0.0.72:1000/get.php" -L -e "https://google.com" # 显示整个请求过程的信息
curl --user "DQ:123" --url "http://127.0.0.72:1000/get.php" -D "output.txt" # 将响应头结果输入到output.txt文件

- curl 语法及选项 -

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
在以下选项中,(H) 表示仅适用 HTTP/HTTPS ,(F) 表示仅适用于 FTP
--anyauth 选择 "any" 认证方法 (H)
-a, --append 添加要上传的文件 (F/SFTP)
--basic 使用HTTP基础认证(Basic Authentication)(H)
--cacert FILE CA 证书,用于每次请求认证 (SSL)
--capath DIR CA 证书目录 (SSL)
-E, --cert CERT[:PASSWD] 客户端证书文件及密码 (SSL)
--cert-type TYPE 证书文件类型 (DER/PEM/ENG) (SSL)
--ciphers LIST SSL 秘钥 (SSL)
--compressed 请求压缩 (使用 deflate 或 gzip)
-K, --config FILE 指定配置文件
--connect-timeout SECONDS 连接超时设置
-C, --continue-at OFFSET 断点续转
-b, --cookie STRING/FILE Cookies字符串或读取Cookies的文件位置 (H)
-c, --cookie-jar FILE 操作结束后,要写入 Cookies 的文件位置 (H)
--create-dirs 创建必要的本地目录层次结构
--crlf 在上传时将 LF 转写为 CRLF
--crlfile FILE 从指定的文件获得PEM格式CRL列表
-d, --data DATA HTTP POST 数据 (H)
--data-ascii DATA ASCII 编码 HTTP POST 数据 (H)
--data-binary DATA binary 编码 HTTP POST 数据 (H)
--data-urlencode DATA url 编码 HTTP POST 数据 (H)
--delegation STRING GSS-API 委托权限
--digest 使用数字身份验证 (H)
--disable-eprt 禁止使用 EPRT 或 LPRT (F)
--disable-epsv 禁止使用 EPSV (F)
-D, --dump-header FILE 将头信息写入指定的文件
--egd-file FILE 为随机数据设置EGD socket路径(SSL)
--engine ENGINGE 加密引擎 (SSL). "--engine list" 指定列表
-f, --fail 连接失败时不显示HTTP错误信息 (H)
-F, --form CONTENT 模拟 HTTP 表单数据提交(multipart POST) (H)
--form-string STRING 模拟 HTTP 表单数据提交 (H)
--ftp-account DATA 帐户数据提交 (F)
--ftp-alternative-to-user COMMAND 指定替换 "USER [name]" 的字符串 (F)
--ftp-create-dirs 如果不存在则创建远程目录 (F)
--ftp-method [MULTICWD/NOCWD/SINGLECWD] 控制 CWD (F)
--ftp-pasv 使用 PASV/EPSV 替换 PORT (F)
-P, --ftp-port ADR 使用指定 PORT 及地址替换 PASV (F)
--ftp-skip-pasv-ip 跳过 PASV 的IP地址 (F)
--ftp-pret 在 PASV 之前发送 PRET (drftpd) (F)
--ftp-ssl-ccc 在认证之后发送 CCC (F)
--ftp-ssl-ccc-mode ACTIVE/PASSIVE 设置 CCC 模式 (F)
--ftp-ssl-control ftp 登录时需要 SSL/TLS (F)
-G, --get 使用 HTTP GET 方法发送 -d 数据 (H)
-g, --globoff 禁用的 URL 队列 及范围使用 {} 和 []
-H, --header LINE 要发送到服务端的自定义请求头 (H)
-I, --head 仅显示响应文档头
-h, --help 显示帮助
-0, --http1.0 使用 HTTP 1.0 (H)
--ignore-content-length 忽略 HTTP Content-Length 头
-i, --include 在输出中包含协议头 (H/F)
-k, --insecure 允许连接到 SSL 站点,而不使用证书 (H)
--interface INTERFACE 指定网络接口/地址
-4, --ipv4 将域名解析为 IPv4 地址
-6, --ipv6 将域名解析为 IPv6 地址
-j, --junk-session-cookies 读取文件中但忽略会话cookie (H)
--keepalive-time SECONDS keepalive 包间隔
--key KEY 私钥文件名 (SSL/SSH)
--key-type TYPE 私钥文件类型 (DER/PEM/ENG) (SSL)
--krb LEVEL 启用指定安全级别的 Kerberos (F)
--libcurl FILE 命令的libcurl等价代码
--limit-rate RATE 限制传输速度
-l, --list-only 只列出FTP目录的名称 (F)
--local-port RANGE 强制使用的本地端口号
-L, --location 跟踪重定向 (H)
--location-trusted 类似 --location 并发送验证信息到其它主机 (H)
-M, --manual 显示全手动
--mail-from FROM 从这个地址发送邮件
--mail-rcpt TO 发送邮件到这个接收人(s)
--mail-auth AUTH 原始电子邮件的起始地址
--max-filesize BYTES 下载的最大文件大小 (H/F)
--max-redirs NUM 最大重定向数 (H)
-m, --max-time SECONDS 允许的最多传输时间
--metalink 处理指定的URL上的XML文件
--negotiate 使用 HTTP Negotiate 认证 (H)
-n, --netrc 必须从 .netrc 文件读取用户名和密码
--netrc-optional 使用 .netrc 或 URL; 将重写 -n 参数
--netrc-file FILE 设置要使用的 netrc 文件名
-N, --no-buffer 禁用输出流的缓存
--no-keepalive 禁用 connection 的 keepalive
--no-sessionid 禁止重复使用 SSL session-ID (SSL)
--noproxy 不使用代理的主机列表
--ntlm 使用 HTTP NTLM 认证 (H)
-o, --output FILE 将输出写入文件,而非 stdout
--pass PASS 传递给私钥的短语 (SSL/SSH)
--post301 在 301 重定向后不要切换为 GET 请求 (H)
--post302 在 302 重定向后不要切换为 GET 请求 (H)
--post303 在 303 重定向后不要切换为 GET 请求 (H)
-\#, --progress-bar 以进度条显示传输进度
--proto PROTOCOLS 启用/禁用 指定的协议
--proto-redir PROTOCOLS 在重定向上 启用/禁用 指定的协议
-x, --proxy [PROTOCOL://]HOST[:PORT] 在指定的端口上使用代理
--proxy-anyauth 在代理上使用 "any" 认证方法 (H)
--proxy-basic 在代理上使用 Basic 认证 (H)
--proxy-digest 在代理上使用 Digest 认证 (H)
--proxy-negotiate 在代理上使用 Negotiate 认证 (H)
--proxy-ntlm 在代理上使用 NTLM 认证 (H)
-U, --proxy-user USER[:PASSWORD] 代理用户名及密码
--proxy1.0 HOST[:PORT] 在指定的端口上使用 HTTP/1.0 代理
-p, --proxytunnel 使用HTTP代理 (用于 CONNECT)
--pubkey KEY 公钥文件名 (SSH)
-Q, --quote CMD 在传输开始前向服务器发送命令 (F/SFTP)
--random-file FILE 读取随机数据的文件 (SSL)
-r, --range RANGE 仅检索范围内的字节
--raw 使用原始HTTP传输,而不使用编码 (H)
-e, --referer Referer URL (H)
-J, --remote-header-name 从远程文件读取头信息 (H)
-O, --remote-name 将输出写入远程文件
--remote-name-all 使用所有URL的远程文件名
-R, --remote-time 将远程文件的时间设置在本地输出上
-X, --request COMMAND 使用指定的请求命令
--resolve HOST:PORT:ADDRESS 将 HOST:PORT 强制解析到 ADDRESS
--retry NUM 出现问题时的重试次数
--retry-delay SECONDS 重试时的延时时长
--retry-max-time SECONDS 仅在指定时间段内重试
-S, --show-error 显示错误. 在选项 -s 中,当 curl 出现错误时将显示
-s, --silent Silent模式。不输出任务内容
--socks4 HOST[:PORT] 在指定的 host + port 上使用 SOCKS4 代理
--socks4a HOST[:PORT] 在指定的 host + port 上使用 SOCKSa 代理
--socks5 HOST[:PORT] 在指定的 host + port 上使用 SOCKS5 代理
--socks5-hostname HOST[:PORT] SOCKS5 代理,指定用户名、密码
--socks5-gssapi-service NAME 为gssapi使用SOCKS5代理服务名称
--socks5-gssapi-nec 与NEC Socks5服务器兼容
-Y, --speed-limit RATE 在指定限速时间之后停止传输
-y, --speed-time SECONDS 指定时间之后触发限速. 默认 30
--ssl 尝试 SSL/TLS (FTP, IMAP, POP3, SMTP)
--ssl-reqd 需要 SSL/TLS (FTP, IMAP, POP3, SMTP)
-2, --sslv2 使用 SSLv2 (SSL)
-3, --sslv3 使用 SSLv3 (SSL)
--ssl-allow-beast 允许的安全漏洞,提高互操作性(SSL)
--stderr FILE 重定向 stderr 的文件位置. - means stdout
--tcp-nodelay 使用 TCP_NODELAY 选项
-t, --telnet-option OPT=VAL 设置 telnet 选项
--tftp-blksize VALUE 设备 TFTP BLKSIZE 选项 (必须 >512)
-z, --time-cond TIME 基于时间条件的传输
-1, --tlsv1 使用 => TLSv1 (SSL)
--tlsv1.0 使用 TLSv1.0 (SSL)
--tlsv1.1 使用 TLSv1.1 (SSL)
--tlsv1.2 使用 TLSv1.2 (SSL)
--trace FILE 将 debug 信息写入指定的文件
--trace-ascii FILE 类似 --trace 但使用16进度输出
--trace-time 向 trace/verbose 输出添加时间戳
--tr-encoding 请求压缩传输编码 (H)
-T, --upload-file FILE 将文件传输(上传)到指定位置
--url URL 指定所使用的 URL
-B, --use-ascii 使用 ASCII/text 传输
-u, --user USER[:PASSWORD] 指定服务器认证用户名、密码
--tlsuser USER TLS 用户名
--tlspassword STRING TLS 密码
--tlsauthtype STRING TLS 认证类型 (默认 SRP)
--unix-socket FILE 通过这个 UNIX socket 域连接
-A, --user-agent STRING 要发送到服务器的 User-Agent (H)
-v, --verbose 显示详细操作信息
-V, --version 显示版本号并退出
-w, --write-out FORMAT 完成后输出什么
--xattr 将元数据存储在扩展文件属性中
-q .curlrc 如果作为第一个参数无效


如果您喜欢此博客或发现它对您有用,则欢迎对此发表评论。也欢迎您共享此博客,以便更多人可以参与。如果博客中使用的图像侵犯了您的版权,请与作者联系以将其删除。谢谢 !