5.linux进价命令curl和jq
Posted mamingchen
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了5.linux进价命令curl和jq相关的知识,希望对你有一定的参考价值。
linux的进价命令
1. curl 命令
curl命令是一个工具,主要用于请求的发送,get,post请求,支持的协议有 DICT,FILE,FTP,FTPS,HTTP
1. -x参数指定代理
# 192.168.1.101:8801 加入Charles代理设置的是这个ip地址和端口,则通过-x参数指定后,访问百度时,charles就会抓到包了
curl -x 192.168.1.108:8801 https://www.baidu.com
2. 发送get请求
-G: 指明使用get请求,如果没有写 -G, curl默认都是get请求
-d: 指定请求数据
curl https://www.baidu.com
curl -G https://www.baidu.com
curl -X GET https://www.baidu.com # -X GET 明确指定get请求
3. 发送post请求
-d: 指定post的请求体
curl -d "login=vic" https://www.baidu.com
curl -X POST https://www.baidu.com
4. 其他
# 1. 保存响应内容:把百度的访问结果保存在tmp.html里
curl -o tmp.html https://www.baidu.com
# 2. 输出通信的整个过程
curl -v https://www.baidu.com
# 3. 不输出错误和进度信息,过滤掉无用的多余的信息
curl -s https://www.baidu.com
2. jq 命令
https://stedolan.github.io/jq/
- 安装
官网下载之后,mac将下载的文件放到 /usr/local/bin目录下,然后source ~/.bash_profile
之后,就可以用了
jq命令是一个工具,主要是用于从json里提取数据
. 格式化
echo \'{"a":1,"b":2}\' | jq \'.\'
# 提取内容
echo \'{"foo":33, "bar":"ok"}\' | jq .foo
# 从数组中提取单个数据
echo \'[{"a":1,"b":2},{"c":3,"d":4}]\' | jq .[0]
# 从数组中提取所有数据
echo \'[{"a":1,"b":2},{"c":3,"d":4}]\' | jq .[]
# 过滤多个值:只能提取出来第一个和第二个{"a":1,"b":2},{"c":3,"d":4}
echo \'[{"a":1,"b":2},{"c":3,"d":4},{"e":3,"f":4}]\' | jq .[0,1]
# 数据重组成数组, [.a,.b] 需要用’‘包裹起来重组为一个数组,.a 和 .b就是提取后的值
echo \'{"a":1,"b":2,"c":3,"d":4,"e":3,"f":4}\' | jq \'[.a,.b]\'
# 数据重组成对象
echo \'{"a":1,"b":2,"c":3,"d":4,"e":3,"f":4}\' | jq \'{"temp":.d}\'
以上是关于5.linux进价命令curl和jq的主要内容,如果未能解决你的问题,请参考以下文章
CentOS yum 命令出现 [Errno 14] curl#6 - "Couldn't resolve host ..." 的解决方法(代码片段