Linux每日一篇 - 53 - curl
Linux数据传输神器!掌握curl命令,高效传输数据,支持多种协议!
curl命令是什么?
curl是”Client URL”的缩写,是一个强大的命令行工具,用于在服务器之间传输数据,支持HTTP、HTTPS、FTP、FTPS、SFTP等多种协议,是网络开发和调试的必备工具。
基本用法
# 获取网页内容
curl https://example.com
# 下载文件
curl -O https://example.com/file.zip
# 下载并重命名文件
curl -o newname.zip https://example.com/file.zip
# 显示详细信息
curl -v https://example.com
# 断点续传
curl -C - -o file.zip https://example.com/file.zip
# 限制下载速度
curl --limit-rate 100K https://example.com/file.zip
实用技巧
# 发送POST请求
curl -X POST -d "param1=value1¶m2=value2" https://example.com/api
# 发送JSON数据
curl -X POST -H "Content-Type: application/json" -d '{"key":"value"}' https://example.com/api
# 设置请求头
curl -H "Authorization: Bearer token" https://api.example.com/data
# 跟随重定向
curl -L https://example.com/redirect
# 保存cookie
curl -c cookies.txt https://example.com
# 使用cookie
curl -b cookies.txt https://example.com
# 设置超时时间
curl --connect-timeout 10 --max-time 30 https://example.com
常用场景
# 检查API响应
curl -s https://api.example.com/health
# 测试HTTP状态码
curl -s -o /dev/null -w "%{http_code}" https://example.com
# 上传文件
curl -X POST -F "file=@/path/to/file" https://example.com/upload
# 下载GitHub Release
curl -L -o app.tar.gz https://github.com/user/repo/releases/latest/download/app.tar.gz
# 测试网站响应时间
curl -w "@curl-format.txt" -o /dev/null -s https://example.com
# 获取响应头信息
curl -I https://example.com
# 忽略证书错误
curl -k https://self-signed.badssl.com