在 CentOS 上玩服务器的朋友,是不是遇到过这些情况?想下载个软件包,输了 curl 命令结果提示 “command not found”;想测试下 API 接口通不通,对着命令行发呆不知道该敲啥;好不容易写出命令了,又跳出一堆错误代码,看得头都大了。别愁,今天小编就从 curl 的安装开始,一步步讲到常用命令、错误处理,还有 API 测试,哪怕你是刚接触 Linux 的新手,看完也能上手操作,一起往下看吧!
先搞懂:curl 到底是个啥?为啥在 CentOS 上离不开它?
可能有新手会问,curl 这东西有啥用啊?简单说,它就是个命令行工具,能通过 HTTP、HTTPS 这些协议跟服务器打交道,下载文件、测试接口、发请求都能用,在服务器上没图形界面的时候,它可太重要了。
就像小编之前在 CentOS 上部署网站,要下载源码包,用 curl 一行命令就搞定,比手动下载再上传方便多了。而且测试 API 接口的时候,不用开 Postman,直接在终端输命令就行,效率超高,对吧?
第一步:在 CentOS 上安装 curl,分分钟的事儿
要是输入 curl 提示 “找不到命令”,别慌,就是没装而已,安装超简单。
- CentOS 7 系统:用 yum 命令就行。先打开终端,输
sudo yum update -y
更新下系统(这步可选,但更稳妥),然后输sudo yum install curl -y
,等它跑完,最后输curl --version
,能看到版本号就说明装好了。 - CentOS 8 系统:跟 7 差不多,就是包管理工具换成了 dnf。输
sudo dnf install curl -y
,其他步骤一样。小编在 CentOS 8 上试过,用 dnf 安装比 yum 快一点点,不知道是不是错觉哈。
有个新手朋友问我,为啥他安装的时候提示 “权限不够”?哦对了,普通用户要加 sudo,或者切换到 root 用户,不然没权限安装软件,这点别忘了。
常用 curl 命令:这几个最实用,记不住就存起来
学会这几个命令,日常操作基本够用了,别贪多,先练熟这几个。
- 下载文件:
curl -O https://example.com/file.zip
。-O 这个参数超好用,能把文件按原名保存到当前目录,不用自己起名。小编下载源码包的时候天天用,省事儿。 - 查看网页内容:
curl https://example.com
。输完直接在终端显示网页的 HTML 代码,想快速看个页面内容很方便。要是内容太多,加个| less
,比如curl https://example.com | less
,能翻页看。 - 发送 GET 请求(测试 API 常用):
curl https://api.example.com/weather?city=beijing
。带参数的话直接跟在 URL 后面,跟在浏览器里访问一样。小编测试天气 API 的时候就这么用,立马能看到返回的 JSON 数据。 - 发送 POST 请求:
curl -X POST -d "name=test&age=18" https://api.example.com/submit
。-X 指定请求方法是 POST,-d 后面跟要提交的数据。提交表单、注册用户的时候常用,记得数据格式要对哦。
错误处理:遇到这些问题,这么解决准没错
用 curl 的时候最烦报错,别急,常见的就这几种,对应方法记好。
- 错误:curl: (6) Could not resolve host:这是域名解析不了,可能是网址输错了,或者服务器没网。先 ping 一下网址,
ping example.com
,要是也不通,就检查网络或网址拼写。小编上次把 “example” 拼成 “exmaple”,折腾半天发现是输错了,尴尬。 - 错误:curl: (7) Failed to connect to …:连接不上服务器,可能是端口不对,或者对方服务器没开。比如测试 API 的时候,是不是忘了加端口?
curl https://api.example.com:8080
,端口号别漏了。 - 错误:curl: (60) SSL certificate problem:HTTPS 证书问题,有些网站证书不被信任。新手可以临时加个 – k 参数跳过验证,
curl -k https://example.com
,但正式环境别这么干,不安全。 - 错误:command not found:要么没装 curl,要么装了没生效,重新装一遍或者重启终端试试,一般都能好。
API 测试实战:用 curl 测接口,比工具还方便
很多朋友用 curl 就是为了测试 API,举个例子,一步一步教你。
比如要测试一个用户注册的 POST 接口,地址是https://api.example.com/register
,需要传用户名和密码。
- 命令:
curl -X POST -H "Content-Type: application/json" -d '{"username":"testuser","password":"123456"}' https://api.example.com/register
这里的 – H 是加请求头,告诉服务器数据是 JSON 格式;-d 后面是 JSON 数据,记得用单引号包起来,里面的双引号别乱改。输完命令,终端会返回接口的响应,成功的话能看到 “注册成功” 之类的提示。
小编测试过很多 API,发现用 curl 比 Postman 快多了,尤其是在服务器上没图形界面的时候,纯命令行操作,效率杠杠的。
小编的一点心得
curl 这东西,看着命令多,其实常用的就那几个,多敲几遍就记住了。刚开始练的时候别怕报错,报错信息里其实藏着答案,比如提示 “SSL 问题” 就想办法处理证书,提示 “连接失败” 就查网络和地址。
建议新手朋友把常用命令记在个小本子上,或者存成文本文件,忘了就翻一翻。用熟了之后,你会发现 curl 真的超好用,下载、测试、发请求,一个工具全搞定。希望这篇指南能帮你在 CentOS 上玩转 curl,少走弯路,效率 up up!