小引
我是个前后端兼顾的程序员,那平时开发工作呢,会用到很多开发工具;
开发工具比如:
- 编写Js的vscode;
- 编写php的phpStorm;
- 数据库查询的naviCat;
- 代码托管工具git;
- 接口调试工具postMan;
开发环境:
- 前端node环境;
- 后端php环境;
那我今天要介绍的,就是我一个比较依赖的工具,那就是terminal
终端;
我所用到所有生产工具,他占了50%,剩下的50%则是chrome浏览器
,微信
, 飞书
还有其他编辑器
。
其中chrom浏览器占了49%
配置
首先呢,终端肯定不是开箱即用的,我得简单配置下终端,这样使用起来可以更顺手;这里呢,首先需要折腾下终端环境;
mac下,需要先安装下homeborw; linux则不用;
这里我简单推荐几个简单好用的终端软件;
1、tmux
这是个终端多窗口管理界面;这个是必装的软件;它可以创建多个窗口执行各种的任务,并挂起,与很多终端软件自带的多tap和分屏功能最大的区别就是:
1、这个是会后挂起;
2、方便预览每个窗口的任务;
3、远程访问的时候,我同样可以很方的管理任务窗口;
2、fish shell
这个是带有提示功能的终端shell,类似的还有zsh, 我比较喜欢使用fish
;常用的shell 如bash, 提示就没那么灵活,敲tap也会跑出一堆不是我们想要的命名;fish可以有这些好处;
1、联想可能的命令;
2、会提示常输入的命令;
3、还有一点就是会根据不同的目录提示,如docker-compose 的提示,只会在工程目录下提示;
结合oh-mh-fish,还可以安装各种炫酷的主题;
3、autoJump
这个工具可以快速跳转到我常去的目录;比如我常去的几个目录也就这几个,laradock工程目录
, 前端工程目录
, 后端工程目录
,可能还有其他项目的工程目录;但是那么多的目录,自己很容易忘记,这时候,只要输入j [工程目录名称]
, 我就可以快速进入;
1、这里进去的目录是曾经进去过的;
2、工程名称最好是跟目录名称差不多;
3、如果不知道工程具体名称,可以结合fish的工程使用,j 空格,然后按上键查找
4、vim + markdownPreview
vim是全宇宙最强编辑器;这个在这里不多介绍,感兴趣可看我另外一篇关于如何配置vim的简书;
而markdownPreview则是vim的一个插件,它可以起一个服务端口,用浏览器来预览md文件,这样就可以愉快的写md文件了;比如我这边文档就是这么写的
那我是怎么搬砖的
终端配置好后,我们就回到主体,说说我是怎么愉快的搬砖的(工作的);
1、说下我的开发环境
前端的开发环境是node, 后端则是php7.2~8.0
, 因为开发的项目比较多,所以就会用到多版本的环境;我们可以用laradock,但是,每次切换版本,都得重新build一下,这个很麻烦
-
node的多版本管理工具nvm;
-
php 多版本管理工具
php多版本管理工具有很多,且都不好折腾,比如phpbrew, 我这里用的是homebrew-php; 不好折腾的一点,就是对应版本的php,相关拓展插件都得重新装一遍;
2、怎么运行任务
前端要运行npm
, 后端要运行php artisan
, 还有composer
等会执行很久的命名, 那么我就可以借用tmux
来多建几个tab来管理这些任务;
我一般是创建者几个tab:
1、laradock
2、编译,
3、前端,
4、后端,
5、工作区,
3、怎么敲代码的
当然是vim
,这个有点复杂,不详细讨论,可以看我的另外一篇文章;
4、怎么调试接口
有的时候,需要看下接口返回了哪些数据,可以用postman, 那我用的是TestController
+ jq
来提示;
TestController 并不是什么工具,只是写了个laraevl得控制器,在里面获取到数据后,直接return 出来;那我终端这边就可以直接利用curl和jq,将数据以json的形式打印出来;
Jq是可以将json数据在终端打印出来的工具,还可以获取数据的子节点; 用法很简单
curl localhost/api/test | jq
5、查询数据库呢
后端开发自然少不了数据库查询,很多人会用navicat, 那我不会,查个数据而已,不用那么麻烦;我一般是用mycli这个终端软件,或者是laradock的phpMyAdmin。
mycli 这个是带有提示的;
6、我怎么记笔记的
我自己有写博客的习惯,将一些笔记写成md文件,有些人可能会用有道云笔记;那我则是用vim + markdowmPreview,然后通过浏览器的预览;写好的笔记直接push到github上(当然,得把仓库库设为私有);如何想查找笔记内容,也可用find和grep等终端工具查找;
比如我这边文章就是这么写的
7、我是怎么划水的
终端的魅力所在,就是他有很多令人意想不到的功能;除了我可以在这上面写代码,我还可以查看天气预报,看地图, 玩小游戏,甚至看电影《星球大战》
- 看看天气预报;
这个其实是去请求一个网址(http://wttr.in/福州?m3&lang=zh)返回的,然后我在终端用curl请求
-
看看世界地图;
这个是基于node的一个小软件MapScii;这个就只能简单看看,没有搜搜功能
- 玩玩的小游戏;
游戏的话,可就多了,终端有各种无聊的小游戏,比如俄罗斯方块,小蜜蜂等;这个百度下有很多好玩的帖子
-
还有彩虹猫
彩虹猫nyancat这个之前YouTuBe点击量超级高的
Coding Anywhere
好的,回到话题,Coding Anywhere, 顾名思义,就是可以随时随地的编码,上面介绍的,不管是敲代码,调试,写博客,查数据库等等,我都是在终端完成的(当然,还需要借助浏览器);
我们不可能随时带着自己的电脑, 当我们可能会需要临时修改下我们的程序,或改下bug,那么我们就可以借下别人的电脑,哪怕是手机 就可以做得到;
所以,我们只要使用一台能使用ssh的设备就可以连上服务器,就可以愉快的编码;(我就干过在参加别人的婚礼时,借别人的电脑修改bug的);
调试是需要浏览器的,移动设备或者性能很糟糕的pc,就有点麻烦了;
安卓手机可以装个termux-app,这个可以运行linux环境和大部分linux终端软件,用起来有点像Ubuntu;
ios设备则可以安装ish, 这个到不是很好用,会卡死,bug也较多。