news 2026/4/22 23:53:10

Linux命令行下载工具:curl与wget实用指南

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Linux命令行下载工具:curl与wget实用指南

Linux命令行下载工具:curl与wget实用指南

【免费下载链接】Bash-OnelinerA collection of handy Bash One-Liners and terminal tricks for data processing and Linux system maintenance.项目地址: https://gitcode.com/GitHub_Trending/ba/Bash-Oneliner

curl和wget是Linux系统中两个功能强大的命令行下载工具,它们在文件传输、网站镜像和数据获取方面各有专长。curl支持多种协议和数据操作,wget则在递归下载和后台任务处理方面表现突出。本文将详细介绍这两款工具的核心功能和典型应用场景。

工具基础特性

curl和wget虽然都用于文件下载,但在设计理念和功能侧重上有所不同。curl更侧重于灵活的数据传输和HTTP请求处理,支持HTTP、HTTPS、FTP、SCP等多种协议。wget则更适合批量下载和网站镜像任务,具备自动重试和后台运行等实用功能。

环境检查命令:

# 验证curl安装状态 curl --version # 验证wget安装状态 wget --version

基础文件下载操作

单文件下载方法

使用curl下载文件时,需要通过-o参数指定输出文件名:

curl -o output_file.html http://example.com

wget则可以直接使用URL中的文件名自动保存:

wget http://example.com

如果需要自定义文件名,可以使用以下命令:

wget -O custom_filename "http://example.com"

指定下载目录

将文件下载到特定目录的操作方法:

# curl指定目录下载 curl -o /target/directory/file.html http://example.com # wget指定目录下载 wget -P /target/directory "http://example.com"

高级下载功能详解

网络中断恢复机制

当下载大文件时遇到网络中断,可以使用断点续传功能继续下载:

# curl断点续传 curl -C - -o large_file.zip http://example.com/large_file.zip # wget断点续传 wget -c http://example.com/large_file.zip

带宽控制设置

在需要限制下载速度以避免影响其他网络应用时:

# curl限速下载(100KB/s) curl --limit-rate 100K -o file.zip http://example.com/file.zip # wget限速下载 wget --limit-rate=100k http://example.com/file.zip

重定向处理策略

处理包含重定向的URL时:

# curl跟随重定向 curl -L http://example.com/redirect

提示:wget默认会自动跟随重定向,如需禁用可使用--max-redirect=0参数。

批量下载与网站镜像

多文件批量下载

从URL列表文件中批量下载:

# curl批量下载 xargs -n 1 curl -O < urls.txt # wget批量下载 wget -i urls.txt

递归下载配置

使用wget进行网站镜像时的典型配置:

wget -r -l1 -H -t1 -nd -N -np -A mp3 -e robots=off http://example.com

参数说明:

  • -r:启用递归下载
  • -l1:设置递归深度为1级
  • -H:允许跨域名下载
  • -t1:设置重试次数为1次
  • -nd:不创建目录层级结构
  • -N:仅下载更新的文件
  • -np:不向父目录追溯
  • -A mp3:仅下载mp3格式文件
  • -e robots=off:忽略robots.txt限制

文件上传操作

curl支持通过多种协议上传文件:

# 上传文件到transfer.sh服务 curl --upload-file ./local_file.txt https://transfer.sh/filename.txt

上传成功后,系统会返回一个下载链接,使用以下命令下载:

curl https://transfer.sh/unique_code/filename.txt -o filename.txt

HTTP请求调试技巧

自定义请求头设置

模拟特定客户端或设置请求参数:

# 设置User-Agent头 curl -A "Custom User Agent" http://example.com # 设置Referer来源 curl -e "http://referer.com" http://example.com/api

HTTP状态信息获取

获取网站响应状态码:

curl -s -o /dev/null -w "%{http_code}" https://www.google.com

获取重定向目标地址:

curl -s -o /dev/null -w "%{redirect_url}" https://bit.ly/shortlink

请求时间分析

测量网络请求各阶段耗时:

curl -v -o /dev/null -s -w 'Total: %{time_total}s\n' google.com

实用场景配置

后台下载管理

长时间下载任务适合在后台执行:

# wget后台下载模式 wget -b http://example.com/large_file.zip # 监控下载进度 tail -f wget-log

文档格式转换阅读

将Markdown文档转换为其他格式阅读:

# 转换为man手册格式 curl https://raw.githubusercontent.com/onceupon/Bash-Oneliner/master/README.md | pandoc -f markdown -t man | man -l - # 通过文本浏览器阅读HTML格式 curl https://raw.githubusercontent.com/onceupon/Bash-Oneliner/master/README.md | pandoc | w3m -T text/html

网络信息查询

快速获取公网IP地址:

curl http://checkip.amazonaws.com

常见问题处理

SSL证书验证

处理HTTPS网站证书验证问题:

# curl忽略SSL证书验证 curl -k https://example.com # wget忽略SSL证书验证 wget --no-check-certificate https://example.com

注意:绕过SSL证书验证仅适用于测试环境,生产环境应确保证书有效性。

下载性能优化

提升下载速度的配置方法:

# curl多连接下载 curl -Z http://example.com/large_file.zip # wget优化参数配置 wget -c -t 0 -w 2 --limit-rate=200k http://example.com/large_file.zip

总结与进阶建议

curl和wget作为Linux系统中的核心下载工具,提供了丰富的功能和灵活的配置选项。掌握这些工具的基本用法和高级特性,能够有效提升日常工作效率。

进一步学习建议:

  1. 查阅官方手册:man curlman wget
  2. 在实际项目中练习参数组合使用
  3. 结合其他命令行工具构建自动化脚本

通过系统学习和实践应用,可以充分发挥这些工具在数据处理和系统维护中的价值。

【免费下载链接】Bash-OnelinerA collection of handy Bash One-Liners and terminal tricks for data processing and Linux system maintenance.项目地址: https://gitcode.com/GitHub_Trending/ba/Bash-Oneliner

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/19 4:20:01

QuickLook快速预览工具:Windows效率革命,空格键改变文件浏览体验

QuickLook快速预览工具&#xff1a;Windows效率革命&#xff0c;空格键改变文件浏览体验 【免费下载链接】QuickLook Bring macOS “Quick Look” feature to Windows 项目地址: https://gitcode.com/gh_mirrors/qu/QuickLook 还在为每次查看文件内容都要等待软件加载而…

作者头像 李华
网站建设 2026/4/22 17:32:53

Aniyomi扩展源终极指南:免费漫画资源一键获取

Aniyomi扩展源终极指南&#xff1a;免费漫画资源一键获取 【免费下载链接】aniyomi-extensions Source extensions for the Aniyomi app. 项目地址: https://gitcode.com/gh_mirrors/an/aniyomi-extensions Aniyomi扩展源是为Aniyomi漫画阅读器提供丰富内容来源的核心组…

作者头像 李华
网站建设 2026/4/15 18:25:05

3步掌握ChartDB:用可视化方式设计数据库图表

3步掌握ChartDB&#xff1a;用可视化方式设计数据库图表 【免费下载链接】chartdb Database diagrams editor that allows you to visualize and design your DB with a single query. 项目地址: https://gitcode.com/GitHub_Trending/ch/chartdb 还在为复杂的SQL语句和…

作者头像 李华
网站建设 2026/4/22 0:55:41

自动驾驶语境下ms-swift多模态模型的应用前景展望

ms-swift多模态模型在自动驾驶中的应用前景 如今&#xff0c;一辆智能汽车每秒产生的数据量堪比一台高性能服务器。摄像头、激光雷达、毫米波雷达源源不断地输出图像与点云信息&#xff0c;而导航系统、语音交互模块也在持续传递上下文指令。面对如此高维、异构的输入流&#x…

作者头像 李华
网站建设 2026/4/18 16:11:54

Gumbo HTML5解析器:构建稳健网页解析的技术深度解析

Gumbo HTML5解析器&#xff1a;构建稳健网页解析的技术深度解析 【免费下载链接】gumbo-parser An HTML5 parsing library in pure C99 项目地址: https://gitcode.com/gh_mirrors/gum/gumbo-parser Gumbo作为一款纯C99实现的HTML5解析库&#xff0c;凭借其强大的错误恢…

作者头像 李华
网站建设 2026/4/20 16:36:30

STM32与RS485硬件结合实现ModbusRTU传输指南

STM32 RS485 构建工业级 ModbusRTU 通信系统的实战指南 在工厂车间的控制柜里&#xff0c;你是否曾遇到这样的场景&#xff1a;PLC读不到传感器数据、HMI显示异常、远程抄表频繁超时&#xff1f;背后往往藏着一个看似简单却极易被忽视的问题—— RS485通信不稳定 。而当我们…

作者头像 李华