当前位置: 首页 > news >正文

wget、curl 命令使用场景与命令实践

一、wget 常见场景与命令

定位:专注于 文件下载,支持递归下载、断点续传,适合批量或自动化下载任务。

1. 基础下载

# 下载文件到当前目录(自动命名)
wget https://example.com/file.zip# 指定保存文件名
wget -O custom_name.zip https://example.com/file.zip

2. 断点续传

# 断点续传未完成的下载
wget -c https://example.com/large-file.iso

3. 递归下载(镜像网站)

# 递归下载整个网站(限制深度为2,不跨越父目录)
wget -r -np -l 2 https://example.com/path/

4. 后台下载

# 后台静默下载(日志输出到 wget.log)
wget -b -o wget.log https://example.com/file.zip

5. 限速下载

# 限速为 100KB/s
wget --limit-rate=100k https://example.com/large-file.zip

6. 批量下载

# 从文件 urls.txt 中读取 URL 列表下载
wget -i urls.txt

二、curl 常见场景与命令

定位:支持 灵活的数据传输,适合调试 API、上传文件、自定义请求等复杂操作。

1. 基础请求

# 发送 GET 请求(默认输出到终端)
curl https://api.example.com/data# 下载文件(-O 使用远程文件名保存)
curl -O https://example.com/file.zip

2. 调试 HTTP 请求

# 使用 curl 调试请求
curl -v https://example.com                  # 显示详细信息,如请求头和响应头
curl -I https://example.com                  # 仅显示响应头(HEAD 方法)
curl -w "Time: %{time_total}s\nCode: %{http_code}" https://example.com  # 自定义输出

示例:检查 https://api.example.com 的响应状态码和延迟。

curl -v -w "HTTP Code: %{http_code}\nTotal Time: %{time_total}s\n" https://api.example.com

输出类似以下内容:

# -v 输出的内容:连接建立 → 请求头 → 响应头 → 响应体。
# 下面省略了请求头、响应头以外的内容
。。。
* Connected to api.example.com (1.2.3.4) port 443
* SSL handshake finished
> GET / HTTP/1.1
> Host: api.example.com
> User-Agent: curl/7.68.0
> 
< HTTP/1.1 200 OK
< Content-Type: application/json
。。。# 自定义格式化输出的内容
HTTP Code: 200
Total Time: 0.452s

3. 发送 POST/PUT 请求

# POST 请求(JSON 数据)
curl -X POST -H "Content-Type: application/json" -d '{"key":"value"}' https://api.example.com# POST 表单数据(-F)
curl -F "username=user" -F "file=@local.txt" https://api.example.com/upload

4. 自定义请求头

# 添加自定义 Header(如 Token)
curl -H "Authorization: Bearer token123" https://api.example.com/protected

5. 文件上传

# 上传文件(-T)
curl -T local_file.txt ftp://ftp.example.com/remote_path/

6. 保存响应到文件

# 保存到文件(-o)
curl -o response.json https://api.example.com/data

7. 认证与代理

# Basic 认证(-u)
curl -u username:password https://api.example.com# 使用代理(-x)
curl -x http://proxy-server:8080 https://example.com

三、总结

  • wget 适用场景:下载、在脚本中实现文件的获取。(如果没有 curl 用的话,用 wget 简单测试下 API 也可)
  • curl 适用场景:API 调试、复杂 HTTP 请求、数据传输(上传/下载)

相关文章:

  • 第八讲 | stack和queue的使用及其模拟实现
  • MySQL 数据库故障排查指南
  • 浏览器的B/S架构和C/S架构
  • 什么是卷积神经网络
  • QtGUI模块功能详细说明,事件与输入处理(五)
  • 无人机飞控算法开发实战:从零到一构建企业级飞控系统
  • JDS-算法开发工程师-第9批
  • Linux | Uboot-Logo 修改文档(第十七天)
  • HTML5中的Microdata与历史记录管理详解
  • linux内核pinctrl/gpio子系统驱动笔记
  • 第6讲、全面拆解Encoder、Decoder内部模块
  • stm32 WDG看门狗
  • 【人工智能】全面掌控:使用Python进行深度学习模型监控与调优
  • 深入浅出:Spring Boot 中 RestTemplate 的完整使用指南
  • 虚拟内存笔记(三)虚拟内存替换策略与机制
  • 小智AI机器人 - 代码框架梳理2
  • 论文解读:MP-SfM: Monocular Surface Priors for Robust Structure-from-Motion
  • C语言速成之08循环语句全解析:从基础用法到高效实践
  • HTTP3详解
  • C++类和对象--初阶
  • 河南信阳拟发文严控预售许可条件:新出让土地开发的商品房一律现房销售
  • 超新星|18岁冲击中超金靴,王钰栋的未来无限可能
  • 寒武纪陈天石:公司的产品力获得了行业客户广泛认可,市场有望迎来新增量需求
  • 科普|“小”耳洞也会引发“大”疙瘩,如何治疗和预防?
  • 商务部就开展打击战略矿产走私出口专项行动应询答记者问
  • 库尔德工人党决定自行解散