Linux curl 命令完整教程:从入门到实战

Linux curl 命令完整教程:从入门到实战

curl 是 Linux 下功能非常强大的命令行网络工具,支持 HTTP、HTTPS、FTP、SFTP 等多种协议,可用于文件下载、上传、网页抓取和接口调试。本文将带你从基础命令、参数讲解,到实战示例完整掌握 curl。


1. curl 基本用法

1.1 基本语法

curl [选项] [URL]

1.2 示例

# 测试网站是否可访问
curl www.baidu.com
# 保存网页到本地
curl www.baidu.com >> baidu.html

# 指定文件名下载
curl -o CentOS.iso http://mirrors.tuna.tsinghua.edu.cn/centos/8.1.1911/isos/x86_64/CentOS-8.1.1911-x86_64-dvd1.iso

  • -o 文件名:保存下载内容

  • -C:断点续传

  • -O:保持 URL 文件名


2. HTTP 请求与响应

2.1 请求头设置

参数 示例 功能
-H "Name: Value" curl -H "User-Agent: MyAgent" URL 添加自定义请求头
-H "Name:" 移除请求头
-A "User-Agent" 设置浏览器或系统标识
-e URL 设置 Referer 来源页面

2.2 响应头获取

参数 示例 功能
-I curl -I URL 仅显示 HTTP 响应头
-i curl -i URL 显示响应头 + 内容
-D 文件 curl -D header.txt URL 保存响应头到文件

3. Cookie 支持

参数 示例 功能
-b name=data 发送 cookie
-c 文件 curl -c cookies.txt URL 保存服务器返回的 cookie
-j 放弃 session cookie,相当于重启浏览器

4. 代理与认证

4.1 代理设置

# HTTP 代理
curl -x 8.8.8.8:8080 URL
# SOCKS5 代理
curl –socks5 127.0.0.1:1080 URL

4.2 HTTP 认证

# Basic Auth
curl --basic -u user:password URL
# Digest Auth
curl –digest -u user:password URL

# NTLM
curl –ntlm -u user:password URL


5. 数据上传与下载

5.1 文件下载

# 下载到指定文件
curl -o file.txt http://example.com/file.txt
# 断点续传
curl -C – -o file.txt http://example.com/file.txt

# 下载部分文件
curl -r 0-499 -o part.txt http://example.com/file.txt

5.2 文件上传

# PUT 上传
curl -T local.txt http://example.com/upload.php
# POST 表单上传
curl -F “file=@local.txt” http://example.com/upload.php


6. SSL/TLS 支持

参数 示例 功能
-k curl -k https://example.com 忽略 SSL 证书验证
-E 证书[:密码] 指定 PEM 证书
--cacert 文件 指定 CA 证书验证
--tlsv1.2 强制使用 TLS 1.2

7. FTP 功能

# 被动模式上传
curl --ftp-pasv -T file.txt ftp://user:pwd@ftp.example.com/
# 自动创建目录
curl –ftp-create-dirs -T file.txt ftp://user:pwd@ftp.example.com/dir/file.txt


8. 速度与超时控制

# 限制最大下载速度 1MB/s
curl --limit-rate 1m URL
# 设置连接超时 10 秒
curl –connect-timeout 10 URL

# 设置总超时 60 秒
curl -m 60 URL


9. 输出与调试

# 安静模式
curl -s URL
# 显示进度条
curl -# URL

# 输出详细信息调试
curl -v URL

# 保存错误信息到文件
curl –stderr error.log URL

# 转储请求和响应
curl –trace trace.txt URL


10. 实用组合示例

# 下载网页并保存,自动创建目录
curl -o ./pages/index.html --create-dirs http://example.com
# POST JSON 数据
curl -X POST -H “Content-Type: application/json” -d ‘{“name”:”Alice”}’ http://example.com/api

# 通过代理下载文件
curl -x 127.0.0.1:1080 -O http://example.com/file.iso


总结

curl 是 Linux 系统下 功能最全的网络工具之一,掌握它可以实现:

  • 文件下载与上传

  • HTTP/HTTPS 请求模拟

  • 表单提交、接口调试

  • 网页抓取与自动化操作

结合上面示例,你可以轻松在服务器上进行各种网络操作,也可以在开发调试中快速验证接口和数据传输。

原创文章,作者:admin,如若转载,请注明出处:https://hostingchat.cn/18554.html

(0)
admin的头像admin
上一篇 2025年12月26日 下午5:19
下一篇 2025年12月26日 下午5:32

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

QQ
分享本页
返回顶部