插件窝 干货文章 linux curl是什么

linux curl是什么

example curl HTTPS 请求 963    来源:    2025-04-28

curl 是 Linux/Unix 系统中一个强大的 命令行工具,用于通过多种网络协议(如 HTTP、HTTPS、FTP、SFTP 等)传输数据。它支持发送请求、下载/上传文件、测试 API、调试网络问题等,是开发者和运维人员的常用工具。


核心功能

  1. 发送 HTTP/HTTPS 请求

    curl https://example.com
    
    • 默认输出请求的响应内容到终端。
  2. 下载文件

    curl -O https://example.com/file.zip  # 保存到当前目录(保留原文件名)
    curl -o custom_name.zip https://example.com/file.zip  # 指定保存文件名
    
  3. 跟随重定向

    curl -L https://example.com  # 自动处理 3xx 重定向
    
  4. 发送 POST/PUT 请求

    curl -X POST -d '{"key":"value"}' -H "Content-Type: application/json" https://api.example.com
    
  5. 调试和查看详细信息

    curl -v https://example.com       # 显示详细请求/响应头(调试用)
    curl -I https://example.com      # 仅显示响应头(HEAD 请求)
    
  6. 支持认证

    curl -u username:password https://api.example.com  # Basic 认证
    curl --oauth2-bearer TOKEN https://api.example.com # OAuth 2.0
    
  7. 代理支持

    curl -x http://proxy-server:port https://example.com
    
  8. 限制下载速度

    curl --limit-rate 100K https://example.com/largefile.iso
    

常用选项

选项 作用
-o <file> 将输出保存到文件
-O 使用远程文件名保存
-L 跟随重定向
-H 添加请求头(如 -H "User-Agent: curl"
-d 发送 POST 数据(表单/JSON)
-F 上传文件(表单 multipart)
-u 用户名密码认证
-k 忽略 SSL 证书验证(不安全,仅测试用)
-s 静默模式(不显示进度/错误)
-v 显示详细调试信息

典型用例

  1. 测试 API 接口

    curl -X GET "https://api.example.com/users?id=123" -H "Authorization: Bearer token"
    
  2. 下载文件并断点续传

    curl -C - -O https://example.com/largefile.tar.gz
    
  3. 上传文件到 FTP

    curl -T localfile.txt ftp://ftp.example.com/ --user ftpuser:ftppass
    
  4. 模拟浏览器请求

    curl -A "Mozilla/5.0" https://example.com
    

wget 的区别

  • curl 更侧重 协议支持多样性API 调试(如支持 HTTP 方法、JSON 请求)。
  • wget 更适合 递归下载网页批量下载(支持断点续传更稳定)。

注意事项

  • 默认不跟随重定向(需加 -L)。
  • 下载大文件时建议用 -C - 启用断点续传。
  • 生产环境中避免使用 -k(忽略证书验证),可能引发中间人攻击。

如果需要更复杂的功能(如 Cookie 管理、SOCKS 代理),可查阅 man curl 或官方文档:curl.se/docs/