curl命令
curl命令是一个利用URL规则在shell终端命令行下工作的文件传输工具;它支持文件的上传和下载,所以是综合传输工具,但按传统,习惯称curl为下载工具。
作为一款强力工具,curl支持包括HTTP、HTTPS、ftp等众多协议,还支持POST、cookies、认证、从指定偏移处下载部分文件、用户代理字符串、限速、文件大小、进度条等特征;做网页处理流程和数据检索自动化。
**语法格式:**curl [参数] [网址]
常用参数:
参数
描述
-O
把输出写到该文件中,保留远程文件的文件名
-u
通过服务端配置的用户名和密码授权访问
-o
将文件保存到 -o 指定的文件名
-C
断点续传
-L
默认情况下curl不会发送重定向,使用-L则会支持重定向
-s
不打印任何信息
-S
只打印错误信息
-X
POST提交
-T
文件上传
-E
HTTPS支持
-H
添加请求头
-c
将访问后的URL的cookie保存到指定文件
-x
使用代理
-F
模拟表单提交
-f
(HTTP)在服务器错误时静默失败(根本没有输出)。
-I
只显示HTTP头部信息
-w
显示格式定义
-o
输出信息到指定位置
参考实例
将下载的数据写入到文件,必须使用文件的绝对地址:
curl https://www.linuxcool.com/abc.txt --silent -O访问需要授权的页面时,可通过-u选项提供用户名和密码进行授权:
curl -u root https://www.linuxprobe.com/
Enter host password for user 'root':上传文件
curl -X POST -F'Image=@/path/file.png' http://example.com/upload发送表单 使用-F选项,然后使用field=value对。
curl -X POST -F 'name=admin' -F '[email protected]' http://example.com/contact.php下载并执行
curl -fsSL http://domain.com/file.sh | sh
只显示HTTP状态码
curl -sIL -w "%{http_code}" http://www.baidu.com -o > /dev/null
curl命令中引用变量/json中引用变量
curl 的URL中引用变量
temp_txt="【环境】OSS文件同步任务结束-"
curl "http://p.jiaparts.com/secret_key/${temp_txt}"
curl -d参数json格式引用示例
time=`date`
curl 'https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=xxxxxxxx-5d8e-4e2d-a8ec-84b8f91f06e1' -H 'Content-Type: application/json' -d ' { "msgtype": "text", "text": { "content": "'"${time}"'" }}'json中引用变量 一,用双引号将JSON字符串包裹起来,并在变量前加上$符号; 二,用单引号将JSON字符串包裹起来(json的值要用双引号包裹起来,所以就是先双引号,再单引号,再双引号+变量名称)
{
"param1": "${VALUE1}",
"param2": "${VALUE2}"
}
{
"param1": "'"$VALUE1"'",
"param2": "'"$VALUE2"'"
}
与该功能相关的Linux命令:
最后更新于