【Linux保姆级教程】curl命令最全用法详解
在Linux日常运维、后端开发、接口调试工作中有一个命令几乎无人不知、无人不用它就是curl命令。curl被称为网络传输瑞士军刀无需打开浏览器纯命令行即可发送网络请求支持HTTP/HTTPS/FTP等数十种协议。不管是测试接口连通性、下载服务器文件、模拟浏览器请求还是排查网络异常它都能轻松拿捏。很多新手只会简单输入curl访问网址对高阶参数一知半解。今天博主给大家整理一份全网最全、通俗易懂的curl实战教程零基础也能看懂建议收藏⭐工作随时翻看一、curl命令简介1.1 什么是curlcurl全称Client URL是一款开源的命令行数据传输工具遵循MIT开源协议。它不依赖图形界面纯终端操作广泛用于Linux、Mac系统Windows高版本系统也已内置。1.2 核心特点✅ 支持协议丰富HTTP、HTTPS、FTP、SFTP等✅ 无图形界面占用资源极低✅ 支持自定义请求头、Cookie、请求体✅ 可断点续传、限速下载、代理访问✅ 适配脚本编写自动化运维必备二、curl安装教程大部分Linux发行版默认预装curl可输入以下命令查看版本判断是否安装curl --version2.1 手动安装无curl环境CentOS / RedHatyum install curl -yUbuntu / Debianapt install curl -yMacOSbrew install curl三、基础语法格式curl命令通用语法简单易记curl [可选参数] [请求URL]语法说明参数可自由组合无参数时默认发送GET请求直接在终端打印网页源码。四、高频参数实战案例重点我把工作中99%会用到的参数进行分类整理附带实操代码建议逐行测试4.1 基础访问类入门必学1、无参数直接访问网址默认GET请求终端直接输出网页全部源码curl https://www.baidu.com2、-L跟随重定向很多网址存在301/302跳转不加-L无法获取最终页面内容工作高频使用curl -L https://www.xxx.com3、-s静默模式隐藏冗余输出屏蔽进度条、错误提示只返回纯净响应数据适合脚本编写curl -s https://www.baidu.com4.2 文件下载类运维必备1、-o小写自定义文件名保存文件手动指定下载后的文件名称curl -o mytest.jpg https://xxx.com/test.jpg2、-O大写使用原文件名保存自动沿用远程文件原始名称无需手动命名curl -O https://xxx.com/test.jpg3、--limit-rate限速下载防止下载占用全部带宽单位支持k/K、m/M# 限速200KB/s下载curl --limit-rate 200k -O https://xxx.com/test.zip4.3 响应报文查看接口调试1、-i显示响应头响应体同时打印HTTP响应头和网页内容查看请求状态码、服务器信息curl -i https://www.baidu.com2、-I大写i仅查看响应头只获取响应头部信息常用于检测接口是否存活、查看状态码curl -I https://www.baidu.com4.4 请求方式自定义后端开发常用1、-X指定请求方法支持GET、POST、PUT、DELETE等HTTP请求方式# 指定POST请求curl -X POST https://api.example.com2、-d发送POST表单/JSON数据该参数默认触发POST请求无需额外加-X POST✅ 普通表单提交curl -d usernametestpassword123456 https://api.example.com/login✅ JSON格式提交后端接口高频curl -H Content-Type: application/json -d {name:张三,age:20} https://api.example.com/user3、-H自定义请求头可添加Token、User-Agent、Cookie等请求头支持多请求头叠加# 携带认证Token请求接口 curl -H Authorization: Bearer abcdef123456 https://api.example.com/user/info4.5 Cookie相关操作1、-c保存响应Cookie到文件curl -c cookie.txt https://www.xxx.com2、-b携带Cookie发起请求# 方式1直接写入Cookiecurl -b tokenabc123 https://api.example.com# 方式2读取文件中的Cookiecurl -b cookie.txt https://api.example.com4.6 高级调试安全参数1、-k跳过SSL证书校验⚠️仅用于本地测试、开发环境生产环境禁止使用存在安全风险常用于解决自签名证书报错curl -k https://localhost:80802、-v详细调试模式打印完整请求链路包含TCP连接、SSL握手、请求报文排查网络异常神器curl -v https://www.baidu.com3、--max-time设置超时时间防止请求卡死单位为秒脚本中必备# 请求超过5秒自动断开curl --max-time 5 https://api.example.com五、工作高频实战场景5.1 接口健康检测仅查看状态码判断接口是否正常运行curl -s -I https://api.example.com | grep HTTP5.2 模拟浏览器访问伪装浏览器UA防止被网站拦截curl -H User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 https://www.xxx.com5.3 上传文件表单提交使用-F参数模拟表单文件上传curl -F file/root/test.jpg https://api.example.com/upload5.4 代理请求访问通过代理服务器发起网络请求curl -x 127.0.0.1:7890 https://www.baidu.com六、常见报错及解决方案❌ 报错1SSL certificate problem原因证书校验失败解决方案添加-k参数跳过校验仅限测试。❌ 报错2Connection timed out原因网络不通、防火墙拦截、域名无法解析解决方案检查服务器防火墙、DNS配置添加超时参数优化请求。❌ 报错3301 Moved Permanently原因网址存在重定向解决方案添加-L参数跟随跳转。七、博主总结curl作为Linux必备网络命令轻量化、无依赖、功能强大不管是开发调试接口、运维检测网络还是编写自动化脚本都是刚需工具。给大家整理一份极简常用参数口诀方便记忆-L跟随重定向-s静默干净输出-O保存原文件-o自定义命名-H改请求头-d传POST参数-I只看响应头-v调试排错本篇文章干货满满建议收藏⭐下次调试接口、下载文件不用到处查命令如果对你有帮助点赞关注后续持续更新Linux实用命令教程