curl是Linux系统中一个功能强大的命令行工具,用于通过URL传输数据,支持多种协议,适用于API调试、文件传输、网络诊断和脚本自动化等场景。 以下是关于curl的详细介绍及实战教程:
一、curl概述二、curl应用场景- API调试:测试RESTful接口(GET/POST/PUT/DELETE等)。
- 文件传输:
下载远程文件。
上传文件到服务器(如FTP/SCP)。
- 网络诊断:
检查服务器响应状态。
分析请求头和响应头。
- 脚本自动化:在Shell或Python脚本中集成网络请毁销求。
三、curl的基本使用1. 安装- Debian系列(如Ubuntu):apt install -y curl
- CentOS系列:yum install -y curl
2. 语法curl [options] [url]- options:选项参数,用于控制请求行为。
- url:请求的路径,可以是HTTP、HTTPS、FTP等URL。
四、常用选项参数1. 请求控制选项2. 数据传输选项- -o:下载内容保存到文件。curl -o download.zip
https://example.com/file.zip
- -O:下载内容,文件名称跟随远程文件。curl -O
https://example.com/file.zip
- -F或--form:发送表单文件或数据(模拟浏览器上传,自动设置multipart/form-data)。curl -F "file=@local.jpg"
https://api.example.com/upload
- -T或--upload-file:上传文件(PUT或POST请求)。curl -T report.pdf ftp://ftp.example.com/upload/
3. 输出与调试选项- -v或--verbose:显示详细调试信息(请求头、响应头、连接过程等)。curl -v
https://www.baidu.com
- -s或--silent:静默模式(不显示进度条),但错误信息仍会显示纤茄游。curl -s
https://example.com
> content.txt - -S或--show-error:在静默模式下显示错误信息(需配合-s使用)。curl -sS
https://invalid-url.com
- --trace:跟踪请求过程(更详细的调试日志)。curl --trace trace.log
https://example.com
4. 其他高级选项- --proxy:使用代理服务器(格式:host:port,支持HTTP/SOCKS5)。curl --proxy 127.0.0.1:8080
https://example.com
- --insecure或-k:忽略HTTPS证书验证(不安全,仅用于测试)。curl -k
https://self-signed.example.com
- --user或-u:基本认证(用户名:密码)。curl -u admin:password123
https://auth.example.com
- --ntlm:使用NTLM认证(Windows域环境)。curl --ntlm -u domainuser:password
https://intranet.example.com
- --limit-rate:限制传输速度(如100k表示100KB/s)。curl --limit-rate 100k
https://example.com/big-file.zip
- --retry:失败后重试次数(网络波动时有用)。curl --retry 5
https://flaky-api.example.com
- --range:断点续传(请求部分内容,用于下载大文件)。curl --range 0-1024
https://example.com/large-file.zip
- -x或--compressed:启用压缩(自动处理gzip/bzip2等编码)。curl -x
https://example.com
五、常用案例1. 模拟域名访问- 作用:请求192.0.2.1,但告诉服务器“我是fake.example.com”。curl -H "Host: fake.example.com"
http://192.0.2.1
2. 下载文件