Linux - curl 命令(上)

简介: Linux - curl 命令(上)

背景


  • 看到开发都是用这个命令来调接口,我也跟着用了
  • 的确很方便,有时候你要跟开发讲某个接口可能有问题的时候,总不能每次都截图吧,这样可信力也不高
  • 所以写 curl 调接口是最快的,直接让开发复制粘贴执行一遍,就知道接口的确有问题了

 

curl 介绍


image.png

  • curl 是常用的命令行工具,用来请求 Web 服务器
  • 它的名字就是客户端(client)的 URL 工具的意思
  • 它的功能非常强大,命令行参数多达几十种
  • 如果熟练的话,完全可以取代 Postman 接口测试工具

 

官方文档

https://curl.se/docs/manpage.html

 

支持的协议

  • DICT、FILE、FTP、FTPS、GOPHER、HTTP、HTTPS
  • IMAP、IMAPS、LDAP、LDAP、POP3、POP3、RTMP、RTSP、SCP、SFTP、SMB
  • SMBS、SMTP、SMTPS、TELNET、TFTP

 

提供强大的功能

  • 代理支持
  • 用户身份验证
  • FTP上传
  • httppost
  • SSL连接
  • cookies
  • 文件传输恢复
  • Metalink
  • 等等

 

语法格式

curl [options / URLs]

 

URL 的各种传法


仅做拓展,实际工作感觉不一定会用的上

大括号 { }

http://site.{1,2,3}.com

等价于发了请求了三个 host

http://site.1.com
http://site.2.com
http://site.3.com

 

中括号 [ ] 获得字母数字序列

类似 range(1,100)

ftp://ftp.example.com/file[1-100].txt文件  # 100个请求
ftp://ftp.example.com/file[001-100].txt(带0) # 100个请求
ftp://ftp.example.com/file[a-z].txt文件  # 26个请求

注意:不支持嵌套序列,但可以在每个序列旁边使用多个嵌套序列

 

综合使用

http://example.com/archive[1996-1999]/vol[1-4]/第{a,b,c}部分.html

 

[ ] 结合 步进

http://example.com/file[1-100:10].txt文件    # 每10个取一次,总共10个请求    
http://example.com/file[a-z:2].txt文件    # 每2个取一次,总共13个请求

 

常见参数


不带参数

请求网页地址

https://www.cnblogs.com/poloyy/

返回的是网页的 html 源码

 

如果是一个正常的 get 请求


 

注意

后面的栗子,基本都会加 -v,是为了看请求的详细过程,更容易看到对应的参数已生效,实际使用不需要每次都 -v

 

-A

  • 等价参数: --user-agent <name>
  • 作用:指定客户端的 User-Agent
curl -v -A "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.77 Safari/537.36" http://baidu.com


 

-b

  • 等价参数: --cookie <data|file>
  • 作用:向服务器发送 Cookie,可以是 data 也可以是一个文件
curl -v -b 'foo=bar' http://baidu.com

Request Headers 将会生成一个Cookie: foo=bar,向服务器发送一个名为 foo、值为 bar 的 Cookie


image.png


通过打印详细信息,可以看到请求头的确加了

 

-c

  • 等价参数: --cookie-jar <filename>
  • 作用:将服务器返回需要设置的 Cookie 写入一个文件
curl -k -v -c test.txt https://www.baidu.com/s?wd=123%E8%89%BE%E5%BE%B7&rsv_spt=1&rsv_iqid=0xf0b9806f0000107b&issp=1&f=8&rsv_bp=1&rsv_idx=2&ie=utf-8&tn=baiduhome_pg&rsv_enter=1&rsv_dl=tb&rsv_sug3=6&rsv_sug1=2&rsv_sug7=100&rsv_sug2=0&rsv_btype=i&inputT=1138&rsv_sug4=1138

会将百度响应需要设置的 Cookie 写入 test.txt 文件


image.png


-d(常用)

  • 等价参数: --data <data>
  • 作用:用于发送 POST 请求的数据体
curl -v  -d 'wd=biying' -d 'ie=UTF-8'  https://www.baidu.com/s


image.png

  • Http 请求头会自动加上 Content-Type : application/x-www-form-urlencoded
  • 并且会自动将请求转为 POST 方法,因此可以省略-X POST

 

--data-urlencode(常用)

作用:参数等同于 -d,发送 POST 请求的数据体,但它会自动将发送的数据进行 URL 编码

curl -v -G --data-urlencode 'wd=b i y i n g' -d 'ie=UTF-8'  https://www.baidu.com/s


image.png


会将空格进行 URL 编码

 

curl -v -G -d 'wd=b i y i n g' -d 'ie=UTF-8'  https://www.baidu.com/s

image.png

-d 就不会 url 编码

相关文章
|
8月前
|
Linux 应用服务中间件 Shell
二、Linux文本处理与文件操作核心命令
熟悉了Linux的基本“行走”后,就该拿起真正的“工具”干活了。用grep这个“放大镜”在文件里搜索内容,用find这个“探测器”在系统中寻找文件,再用tar把东西打包带走。最关键的是要学会使用管道符|,它像一条流水线,能把这些命令串联起来,让简单工具组合出强大的功能,比如 ps -ef | grep 'nginx' 就能快速找出nginx进程。
884 1
二、Linux文本处理与文件操作核心命令
|
8月前
|
Linux
linux命令—stat
`stat` 是 Linux 系统中用于查看文件或文件系统详细状态信息的命令。相比 `ls -l`,它提供更全面的信息,包括文件大小、权限、所有者、时间戳(最后访问、修改、状态变更时间)、inode 号、设备信息等。其常用选项包括 `-f` 查看文件系统状态、`-t` 以简洁格式输出、`-L` 跟踪符号链接,以及 `-c` 或 `--format` 自定义输出格式。通过这些选项,用户可以灵活获取所需信息,适用于系统调试、权限检查、磁盘管理等场景。
502 137
|
8月前
|
安全 Ubuntu Unix
一、初识 Linux 与基本命令
玩转Linux命令行,就像探索一座新城市。首先要熟悉它的“地图”,也就是/根目录下/etc(放配置)、/home(住家)这些核心区域。然后掌握几个“生存口令”:用ls看周围,cd去别处,mkdir建新房,cp/mv搬东西,再用cat或tail看文件内容。最后,别忘了随时按Tab键,它能帮你自动补全命令和路径,是提高效率的第一神器。
1373 58
|
11月前
|
JSON 自然语言处理 Linux
linux命令—tree
tree是一款强大的Linux命令行工具,用于以树状结构递归展示目录和文件,直观呈现层级关系。支持多种功能,如过滤、排序、权限显示及格式化输出等。安装方法因系统而异常用场景包括:基础用法(显示当前或指定目录结构)、核心参数应用(如层级控制-L、隐藏文件显示-a、完整路径输出-f)以及进阶操作(如磁盘空间分析--du、结合grep过滤内容、生成JSON格式列表-J等)。此外,还可生成网站目录结构图并导出为HTML文件。注意事项:使用Tab键补全路径避免错误;超大目录建议限制遍历层数;脚本中推荐禁用统计信息以优化性能。更多详情可查阅手册mantree。
942 143
linux命令—tree
|
7月前
|
存储 安全 Linux
Linux卡在emergency mode怎么办?xfs_repair 命令轻松解决
Linux虚拟机遇紧急模式?别慌!多因磁盘挂载失败。本文教你通过日志定位问题,用`xfs_repair`等工具修复文件系统,三步快速恢复。掌握查日志、修磁盘、验重启,轻松应对紧急模式,保障系统稳定运行。
1250 2
|
8月前
|
Unix Linux 程序员
Linux文本搜索工具grep命令使用指南
以上就是对Linux环境下强大工具 `grep` 的基础到进阶功能介绍。它不仅能够执行简单文字查询任务还能够处理复杂文字处理任务,并且支持强大而灵活地正则表达规范来增加查询精度与效率。无论您是程序员、数据分析师还是系统管理员,在日常工作中熟练运用该命令都将极大提升您处理和分析数据效率。
648 16
|
8月前
|
缓存 监控 Linux
Linux内存问题排查命令详解
Linux服务器卡顿?可能是内存问题。掌握free、vmstat、sar三大命令,快速排查内存使用情况。free查看实时内存,vmstat诊断系统整体性能瓶颈,sar实现长期监控,三者结合,高效定位并解决内存问题。
752 0
Linux内存问题排查命令详解
|
10月前
|
监控 Linux 网络安全
Linux命令大全:从入门到精通
日常使用的linux命令整理
1573 13
|
11月前
|
Linux 网络安全 数据安全/隐私保护
使用Linux系统的mount命令挂载远程服务器的文件夹。
如此一来,你就完成了一次从你的Linux发车站到远程服务器文件夹的有趣旅行。在这个技术之旅中,你既探索了新地方,也学到了如何桥接不同系统之间的距离。
1844 21
|
11月前
|
监控 Linux
Linux系统中使用df命令详解磁盘使用情况。
`df`命令是Linux系统管理员和用户监控和管理磁盘空间使用的重要工具。掌握它的基本使用方法和选项可以帮助在必要时分析和解决空间相关问题。简洁但功能丰富,`df`命令确保了用户可以快速有效地识别和管理文件系统的空间使用情况。
763 13