最近看了一下我的博客的访问统计,作为一个前端博主,没有想到我阅读量最高的一篇博文居然是介绍如何在命令行使用 curl
命令的文章《curl 模拟 GET\POST 请求,以及 curl post 上传文件》。
这实在是太让我惊讶了,看来大家对于命令行的使用还是有很多需求的。因此,我这里这篇文章,如果能让各位看官有所收获,不要忘记给我点赞哦!
书接前文,我在上面那篇文章中,介绍了如何用 curl 命令来模拟各种接口请求。但是,通过命令行返回的接口数据还是一坨,没有十分优雅的展示。我相信这也会影响各位看官的使用体验,毕竟没有 postman
来得优雅。没关系,这里我介绍一个工具 jq
MacOS 用户在命令行输入如下命令安装
brew install jq
Ubuntu\Debian\Deepin 命令
sudo apt install jq
CentOS\RedHat 命令
sudo yum install jq
Arch 命令
sudo pacman -S jq
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 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
后缀。
如上,这个命令行的返回结果,就十分优雅了!我相信各位看官看到这样的终端输出,心情应该是十分愉悦的。
-s
说明,这是表示 curl 命令输出结果采用最简单的模式,否则,会输出网络传输的结果,如下图:
|
说明,这是管道的意思。其用于将前一个命令的结果,作为后一个命令的参数执行。更多内容请自行搜索 linux 管道
通过上面的操作,确实可以更优雅的查看接口的返回结果了。但是,如果我们需要修改命令中的某些参数,用方向键进行来来回回的处理,我相信各位看官还是想要杀人的。。。。没关系,这里我就补充一些快捷键的操作,来帮助大家更加愉悦的使用命令行工具。
当我们在命令行执行了某条命令之后,实际上这条命令就已经被系统记录下来了。下次想要再调用这个命令,可以方便的通过 ctrl + r
快捷键来进行查找。
在命令行中使用 ctrl + r
激活搜索,然后输入关键词。如下图所示:(录制gif 图片累求死我了,各位看官点赞留言呀!)
如果搜索出来的结果有多条,当前的这条不是你想要的,继续按 ctrl + r
快捷键,可以切换搜索结果,如下图所示:
可以看到,在不断的切换搜索结果了。
确定了某条历史执行命令之后,可以按 回车键 立即执行该命令,也可以按一下 ➡️ 右方向键,然后退出搜索模式,进而修改这条命令,然后继续执行。
通过 ctrl + r
快捷键,可以非常方便的让我们重复调试某些接口。
一般情况下,光标会在命令的最后面,想到前面去,我相信各位看官的第一反应是方向键。没错啦,不过我们有更快的方式。
ctrl + a
将光标定位到命令最前面。
ctrl + e
将光标定位到命令最后面。
如果只能到首尾,那也是麻烦得紧,所以,这两个快捷键,可以更好的到达你想要的地方。
alt + b
以单词为单位,向前移动光标。
alt + f
以单词为单位,向后移动光标。
其实,这两个与左右方向键是一样一样的。但是,使用者俩快捷键,可以避免将手移动到主键盘以外。
这个就不放图了,相信大家体验一下就知道了。
用退格键只能一个字母一个字母的删除,那实在是麻烦得紧。但使用这个快捷键,就十分方便了。使用体验如下图所示:
上面的命令是往前删除,这个命令是往后删除。使用体验如下图所示:
通过上面的各种快捷键,我相信大家可以非常舒服、优雅的使用命令行来进行各种命令操作了。一次学不会没关系,收藏一下这篇博文,多看几次就会了哦!
当命令行终端界面里面进行了多次操作之后,一定是很多的信息都在这里,如果你和我一样是强迫症,不愿意看到这些怎么办?
最土的方法是关掉,然后再开一个,不过这个方法非常 2 *^_^*
使用 ctrl + L
快捷键,可以迅速清空当前终端,还你一篇清爽哦!
ctrl + c
快捷键可以终止已经执行单未执行完成的命令,也可以终止你现在正在输入但还没有执行的命令。
这个不放图了。相信你试验一下就好了。
我们前端一般在浏览器中调试我们的开发项目,当遇到某个接口返回数据与我们预期不一致时,在浏览器控制台中,我们可以看到具体的返回结果,如下图所示
当接口修复后,想要观察结果,通常是通过刷新页面。如果是简单的操作还好,如果是需要多个步骤才能到达的页面,我相信你的心情会很不好。
这个时候,这个技巧就十分有帮助了!我们在有问题的接口名上右击,然后点击 Copy
,再点击 Copy as cURL
就可以把这个请求转化为 curl
命令,然后到命令行终端中执行即可。
上面说到了在终端中粘贴,估计不熟悉命令行的朋友会尝试执行 ctrl + v
命令,这是不对的。正确的命令如下:
MacOS Command + v
, 也就是 ⌘ + v
。
Linux ctrl + shift + v
当然,在 linux
各种不同的终端工具中,有一些是可以自定义快捷键的,具体要根据不同的发行版以及不同的终端工具来定。我上面给的命令一般是默认的快捷键。
好的,如果你熟练掌握了以上的各种快捷键,以及 jq
的用法,我相信你一定可以十分畅爽、愉悦、优雅的实名命令行调试各种接口了哦!祝各位看官开心!
码字不易,希望各位看官多多点赞,多多收藏,有疑问或建议,欢迎在评论区中与我讨论哦!我这篇博文,我觉得还是很有收藏的必要性的哦!
我对 Windows 系统的 CMD 工具以及新出的 PowerShell 完全陌生,所以如果在这俩终端工具上进行尝试,我不能保证我上文的内容是正确的哦!
本文由 FungLeo 原创,允许转载,但转载必须保留首发链接。