curl-wget-yum基础用法与区别对比
curl、wget、yum 基础用法与区别对比“三个Linux常用工具的详细对比从网络请求到包管理的完整指南” 工具概览工具主要用途支持平台核心特点curl数据传输工具跨平台支持多种协议功能强大wget文件下载工具跨平台递归下载断点续传yum包管理工具Linux (RHEL/CentOS)依赖关系自动处理 curl 基础用法 核心功能curl是一个强大的数据传输工具支持多种协议HTTP、HTTPS、FTP、SFTP等。 常用命令示例1.基本HTTP请求# GET请求curlhttps://api.example.com/data# 显示详细请求信息curl-vhttps://api.example.com/data# 只显示响应头curl-Ihttps://api.example.com/data2.POST请求# 发送JSON数据curl-XPOST https://api.example.com/users\-HContent-Type: application/json\-d{name:John, age:30}# 发送表单数据curl-XPOST https://api.example.com/login\-dusernameadminpassword123456# 从文件读取数据curl-XPOST https://api.example.com/upload\-HContent-Type: application/json\-ddata.json3.文件操作# 下载文件curl-Ohttps://example.com/file.zip# 指定保存文件名curl-ocustom_name.zip https://example.com/file.zip# 上传文件curl-Ffilelocalfile.txthttps://example.com/upload4.认证和代理# 基础认证curl-uusername:password https://api.example.com/protected# Bearer Token认证curl-HAuthorization: Bearer token123https://api.example.com/api# 使用代理curl-xhttp://proxy.example.com:8080 https://example.com5.高级功能# 限制下载速度10KB/scurl--limit-rate 10k-Ohttps://example.com/largefile.iso# 跟随重定向curl-Lhttps://example.com/redirect# 保存Cookiecurl-ccookies.txt https://example.com/logincurl-bcookies.txt https://example.com/dashboard curl常用参数速查表参数说明示例-X指定HTTP方法-X POST-H添加请求头-H Content-Type: application/json-d发送数据-d keyvalue-F发送表单数据-F filefilename-o输出到文件-o output.txt-O使用远程文件名保存-O-u用户认证-u user:pass-L跟随重定向-L-v详细输出-v-I只显示头部-I wget 基础用法 核心功能wget是一个非交互式网络下载器主要用于文件下载支持递归下载和断点续传。 常用命令示例1.基本文件下载# 下载单个文件wgethttps://example.com/file.zip# 指定保存目录和文件名wget-O/path/to/save/file.zip https://example.com/file.zip# 后台下载wget-bhttps://example.com/largefile.iso2.递归下载网站镜像# 递归下载整个网站wget-rhttps://example.com/# 限制递归深度wget-r-l2https://example.com/# 只下载特定类型文件wget-r-Apdf,doc https://example.com/docs/3.断点续传# 启用断点续传wget-chttps://example.com/largefile.iso# 限制重试次数wget-t3https://example.com/file.zip4.批量下载# 从文件读取URL列表wget-iurl_list.txt# 下载FTP目录wget-rftp://ftp.example.com/pub/5.高级选项# 限制下载速度wget--limit-rate100k https://example.com/largefile.iso# 设置用户代理wget-UMozilla/5.0https://example.com# 忽略证书错误wget--no-check-certificate https://example.com wget常用参数速查表参数说明示例-O指定输出文件名-O filename-P指定保存目录-P /path/to/dir-c断点续传-c-r递归下载-r-l递归深度限制-l 2-A接受的文件类型-A pdf,doc-R拒绝的文件类型-R exe,zip-i从文件读取URL-i url_list.txt-b后台下载-b-q安静模式-q yum 基础用法 核心功能yum是Yellowdog Updater Modified的缩写是RHEL/CentOS系统的包管理工具自动处理依赖关系。 常用命令示例1.软件包管理# 安装软件包yuminstallnginx# 安装多个软件包yuminstallnginx mysql-server php# 重新安装软件包yum reinstall nginx# 卸载软件包yum remove nginx2.更新操作# 更新所有软件包yum update# 更新指定软件包yum update nginx# 检查可更新软件包yum check-update3.查询和信息# 搜索软件包yum search nginx# 显示软件包信息yum info nginx# 列出已安装软件包yum list installed# 列出所有可用软件包yum list available4.仓库管理# 列出所有仓库yum repolist# 启用仓库yum-config-manager--enableepel# 禁用仓库yum-config-manager--disableepel# 添加新仓库yum-config-manager --add-repo http://example.com/repo.repo5.清理和缓存# 清理缓存yum clean all# 生成缓存yum makecache# 查看缓存统计yum stats6.组操作# 列出软件包组yum grouplist# 安装软件包组yum groupinstallDevelopment Tools# 卸载软件包组yum groupremoveDevelopment Tools yum常用参数速查表参数说明示例install安装软件包yum install packageremove卸载软件包yum remove packageupdate更新软件包yum updatesearch搜索软件包yum search keywordinfo显示软件包信息yum info packagelist列出软件包yum list installedclean清理缓存yum clean allrepolist列出仓库yum repolist 三者区别对比 功能定位对比特性curlwgetyum主要用途数据传输文件下载包管理协议支持HTTP, HTTPS, FTP, SFTP, SCP等HTTP, HTTPS, FTP主要HTTP/FTP交互性交互式和非交互式主要非交互式交互式和非交互式依赖处理无无自动处理依赖递归功能有限强大无平台支持跨平台跨平台主要Linux (RHEL/CentOS) 使用场景对比curl 适用场景API开发和测试复杂的HTTP请求POST、PUT、DELETE需要自定义请求头和认证文件上传和表单提交代理和重定向处理wget 适用场景批量文件下载网站镜像和备份大文件下载支持断点续传简单的HTTP/FTP下载后台下载任务yum 适用场景软件包安装和更新系统依赖关系管理软件仓库管理系统维护和升级开发环境搭建 技术特性对比协议支持深度curl: ★★★★★ (支持20种协议) wget: ★★★★☆ (支持主要网络协议) yum: ★★☆☆☆ (主要用于HTTP/FTP仓库)脚本友好性curl: ★★★★★ (输出格式灵活易于解析) wget: ★★★★☆ (日志输出详细) yum: ★★★☆☆ (主要面向交互式使用)错误处理能力curl: ★★★★★ (详细的错误信息和状态码) wget: ★★★★☆ (良好的重试机制) yum: ★★★★☆ (依赖关系错误处理) 实际使用示例对比下载文件的三种方式# 使用curl下载curl-Ohttps://example.com/file.zip# 使用wget下载wgethttps://example.com/file.zip# 使用yum下载通过仓库yuminstallpackage-name# 从配置的仓库下载安装处理认证的对比# curl认证方式多样curl-uuser:pass https://example.comcurl-HAuthorization: Bearer tokenhttps://example.com# wget基础认证wget--useruser--passwordpass https://example.com# yum仓库认证通过配置文件# 在/etc/yum.repos.d/中配置认证信息 选择指南什么时候用curl✅ 需要发送复杂的HTTP请求POST、PUT等✅ 需要自定义请求头和认证✅ 进行API测试和调试✅ 需要上传文件或发送表单数据什么时候用wget✅ 简单的文件下载任务✅ 需要递归下载整个网站✅ 大文件下载需要断点续传✅ 后台下载任务什么时候用yum✅ 安装和管理Linux软件包✅ 处理软件依赖关系✅ 系统更新和维护✅ 管理软件仓库组合使用场景# 使用curl测试API然后用wget下载资源curl-XGET https://api.example.com/files/list|grep.zip|wget-i-# 使用yum安装curl和wgetyuminstallcurlwget 实用技巧curl高级技巧# 并行下载多个文件curl-Z-Ohttps://example.com/file1.zip-Ohttps://example.com/file2.zip# 设置超时时间curl--connect-timeout10--max-time30https://example.com# 使用Cookie文件curl-bcookies.txt-ccookies.txt https://example.com/loginwget高级技巧# 限制带宽使用wget--limit-rate500k https://example.com/largefile.iso# 定时下载wget-q-O- https://example.com/data.json|jq.# 结合jq处理JSON# 镜像网站并转换链接wget-mk-w2https://example.com/yum高级技巧# 只下载不安装yuminstall--downloadonly--downloaddir/path/to/dir package-name# 查看事务历史yumhistory# 回滚操作yumhistoryundo10# 回滚第10次操作# 排除特定软件包更新yum update--excludekernel* 总结核心要点curl是功能最全面的数据传输工具适合复杂的HTTP请求和API开发wget专注于文件下载特别适合批量下载和网站镜像yum是专业的包管理工具自动处理依赖关系适合系统维护学习建议初学者先掌握wget进行简单文件下载开发人员重点学习curl进行API测试系统管理员必须熟练掌握yum进行包管理进阶方向学习curl与jq结合处理JSON数据掌握wget的递归下载和网站镜像技巧深入了解yum仓库配置和依赖关系管理工具使用哲学每个工具都有其独特的价值关键在于根据具体需求选择最合适的工具。curl擅长灵活的数据传输wget专注于稳定的文件下载yum则专业于系统级的包管理。 延伸学习curl官方文档wget官方文档yum官方文档