linux 或 mac 命令行更优雅的使用 curl 命令,以及命令行常用的快捷键说明

最近看了一下我的博客的访问统计,作为一个前端博主,没有想到我阅读量最高的一篇博文居然是介绍如何在命令行使用 curl 命令的文章《curl 模拟 GET\POST 请求,以及 curl post 上传文件》。

这实在是太让我惊讶了,看来大家对于命令行的使用还是有很多需求的。因此,我这里这篇文章,如果能让各位看官有所收获,不要忘记给我点赞哦!

如何在 curl 命令中更优雅的查看返回的 json 数据?

书接前文,我在上面那篇文章中,介绍了如何用 curl 命令来模拟各种接口请求。但是,通过命令行返回的接口数据还是一坨,没有十分优雅的展示。我相信这也会影响各位看官的使用体验,毕竟没有 postman 来得优雅。没关系,这里我介绍一个工具 jq

安装 jq 工具

MacOS 用户在命令行输入如下命令安装

brew install jq

Ubuntu\Debian\Deepin 命令

sudo apt install jq

CentOS\RedHat 命令

sudo yum install jq

Arch 命令

sudo pacman -S jq

curl 上传多个文件、设置 cookies 命令

curl http://localhost:3000/api/v1/upload -F 'file=@/Users/fungleo/Downloads/空心五角星.png' -F 'file=@/Users/fungleo/Downloads/空心五角星.png' -H 'Cookie:token=68fed7e53110f7c4e095d932274a56ea'

如上,这是一个上传多个文件的命令,和上传单个文件是没有什么太大区别的,就是直接写多个文件即可。设置 cookies 和设置普通的 header 并没有什么太大的区别,如果需要设置多个 cookie 值,可以用 ; 号进行分割。

如上,我们来看下终端的返回结果:

curl 上传多个文件、设置 cookies 命令

可以看到,顺利上传多个文件,并且返回了一坨东西。下面,我们就修改上面的命令,看看更优雅的返回结果。

curl http://localhost:3000/api/v1/upload -F 'file=@/Users/fungleo/Downloads/空心五角星.png' -F 'file=@/Users/fungleo/Downloads/空心五角星.png' -H 'Cookie:token=68fed7e53110f7c4e095d932274a56ea' -s | jq

在原来的命令后面,加上 -s | jq 后缀。

curl 上传多个文件、设置 cookies 命令 使用 jq 更优雅的展示

如上,这个命令行的返回结果,就十分优雅了!我相信各位看官看到这样的终端输出,心情应该是十分愉悦的。

-s 说明,这是表示 curl 命令输出结果采用最简单的模式,否则,会输出网络传输的结果,如下图:

-s curl 说明

| 说明,这是管道的意思。其用于将前一个命令的结果,作为后一个命令的参数执行。更多内容请自行搜索 linux 管道

终端下的各种快捷键

通过上面的操作,确实可以更优雅的查看接口的返回结果了。但是,如果我们需要修改命令中的某些参数,用方向键进行来来回回的处理,我相信各位看官还是想要杀人的。。。。没关系,这里我就补充一些快捷键的操作,来帮助大家更加愉悦的使用命令行工具。

ctrl + r 查找历史命令记录

当我们在命令行执行了某条命令之后,实际上这条命令就已经被系统记录下来了。下次想要再调用这个命令,可以方便的通过 ctrl + r 快捷键来进行查找。

在命令行中使用 ctrl + r 激活搜索,然后输入关键词。如下图所示:(录制gif 图片累求死我了,各位看官点赞留言呀!

ctrl + r 查找历史命令记录

如果搜索出来的结果有多条,当前的这条不是你想要的,继续按 ctrl + r 快捷键,可以切换搜索结果,如下图所示:

ctrl + r 查找历史命令记录

可以看到,在不断的切换搜索结果了。

确定了某条历史执行命令之后,可以按 回车键 立即执行该命令,也可以按一下 ➡️ 右方向键,然后退出搜索模式,进而修改这条命令,然后继续执行。

通过 ctrl + r 快捷键,可以非常方便的让我们重复调试某些接口。

ctrl + a 与 ctrl + e 快速将光标指向到命令的首尾

一般情况下,光标会在命令的最后面,想到前面去,我相信各位看官的第一反应是方向键。没错啦,不过我们有更快的方式。

ctrl + a 将光标定位到命令最前面。
ctrl + e 将光标定位到命令最后面。

ctrl + a 与 ctrl + e 快速将光标指向到命令的首尾

alt + b 与 alt + f 快速将光标调整到合适的位置

如果只能到首尾,那也是麻烦得紧,所以,这两个快捷键,可以更好的到达你想要的地方。

alt + b 以单词为单位,向前移动光标。
alt + f 以单词为单位,向后移动光标。

alt + b 与 alt + f 快速将光标调整到合适的位置

ctrl + b 与 ctrl + f 以字母为单位移动光标

其实,这两个与左右方向键是一样一样的。但是,使用者俩快捷键,可以避免将手移动到主键盘以外。

这个就不放图了,相信大家体验一下就知道了。

ctrl + w 向前以单词为单位删除内容

用退格键只能一个字母一个字母的删除,那实在是麻烦得紧。但使用这个快捷键,就十分方便了。使用体验如下图所示:

ctrl + w 向前以单词为单位删除内容

alt + d 向后以单词为单位删除内容

上面的命令是往前删除,这个命令是往后删除。使用体验如下图所示:

alt + d 向后以单词为单位删除内容

通过上面的各种快捷键,我相信大家可以非常舒服、优雅的使用命令行来进行各种命令操作了。一次学不会没关系,收藏一下这篇博文,多看几次就会了哦!

ctrl + l 清空当前命令行

当命令行终端界面里面进行了多次操作之后,一定是很多的信息都在这里,如果你和我一样是强迫症,不愿意看到这些怎么办?

最土的方法是关掉,然后再开一个,不过这个方法非常 2 *^_^*

使用 ctrl + L 快捷键,可以迅速清空当前终端,还你一篇清爽哦!

ctrl + l 清空当前命令行

ctrl + c 终止操作

ctrl + c 快捷键可以终止已经执行单未执行完成的命令,也可以终止你现在正在输入但还没有执行的命令。

这个不放图了。相信你试验一下就好了。

与 chrome 浏览器 配合,快速调试某接口

我们前端一般在浏览器中调试我们的开发项目,当遇到某个接口返回数据与我们预期不一致时,在浏览器控制台中,我们可以看到具体的返回结果,如下图所示

浏览器控制台

当接口修复后,想要观察结果,通常是通过刷新页面。如果是简单的操作还好,如果是需要多个步骤才能到达的页面,我相信你的心情会很不好。

这个时候,这个技巧就十分有帮助了!我们在有问题的接口名上右击,然后点击 Copy,再点击 Copy as cURL 就可以把这个请求转化为 curl 命令,然后到命令行终端中执行即可。

与 chrome 浏览器 配合,快速调试某接口

终端中粘贴命令

上面说到了在终端中粘贴,估计不熟悉命令行的朋友会尝试执行 ctrl + v 命令,这是不对的。正确的命令如下:

MacOS Command + v, 也就是 ⌘ + v

Linux ctrl + shift + v

当然,在 linux 各种不同的终端工具中,有一些是可以自定义快捷键的,具体要根据不同的发行版以及不同的终端工具来定。我上面给的命令一般是默认的快捷键。

好的,如果你熟练掌握了以上的各种快捷键,以及 jq 的用法,我相信你一定可以十分畅爽、愉悦、优雅的实名命令行调试各种接口了哦!祝各位看官开心!

码字不易,希望各位看官多多点赞,多多收藏,有疑问或建议,欢迎在评论区中与我讨论哦!我这篇博文,我觉得还是很有收藏的必要性的哦!

我对 Windows 系统的 CMD 工具以及新出的 PowerShell 完全陌生,所以如果在这俩终端工具上进行尝试,我不能保证我上文的内容是正确的哦!

本文由 FungLeo 原创,允许转载,但转载必须保留首发链接。

Logo

更多推荐