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}'
# 获取数组的长度
echo $content | jq '.data|length'
echo $content | jq '.data' | jq 'length'
posted @ 2021-05-15 03:21  mamingchen  阅读(253)  评论(0编辑  收藏  举报