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命令:

最后更新于