我的生产力工具推荐-终端01篇

俗话说工欲善其事,必先利其器。从本文开始,在分享技术文章的同时,打算加入一个新的主题,关于我的办公(个人)电脑(生产力工具)的相关配置分享
希望能帮到大家~
1、关于电脑
如果你和我从事一样的职业(such as a developers or about Linux),如果电脑是你的另一半,而且还在使用Windows的话,强烈建议尝试使用类Unix系统,主要有以下三个途径(来自我的亲测经历)
a、给自己的电脑安装Deepin、Ubuntu等桌面版Linux操作系统,缺点是安装操作系统后,相关应用的软件包很少很难找
b、攒cuán一台配置稍好点的主机,安装黑苹果,缺点是驱动问题很难解决。就算安装好了,一旦系统升级或因为某些原因导致诸多驱动不可用
c、攒zǎn钱换一台Mac,时至今日,Mac的价格其实也不贵,得益于其强大的操作系统、生态周边以及应用商店,从我个人使用来看,带给我的 “快乐” 比Windows不要太多
大四实习的那一年里,终于攒钱换上了梦寐以求的MBP,作为人生的第二台电脑,得到的那一刻无比兴奋,可能这就是一个对电子产品无比热爱的男孩的快乐吧~
我的电脑型号是MacBook Pro (15-inch, 2018)(A1990)
除此外还淘有一台Mac mini (Late 2012)
电脑细节我就不多做介绍了,回归正题,还是讲讲如何优化电脑各种配置
2、终端介绍
作为一个长期使用终端(依赖患者)的 “工具” 人,拥有一个强大的终端工具是很有必要的,和linux操作系统的软件包管理工具yum、deb、apt一样,在Mac上用的最为普遍的是Homebrew,其次还有python的包管理工具pip,除了自带的终端外,终端软件可以选择iTerm2、SecureCRT、Royal TSX、Termius等等,我用的较多的终端软件是iTerm2和SecureCRT,关于包管理工具Homebrew及pip的安装使用和终端软件iTerm2的使用配置技巧这里也就不多介绍了,网络上有很多很多文章供参考
3、终端工具推荐
到这里才是本文的正题,用上了方便的Homebrew以及配置酷炫的iTerm2后,可以借助以下增强工具来提高生产力,部分终端工具同样可以安装在服务器Linux操作系统上
3.1 fzf-模糊查找
fzf可以用来查找任何列表内容、文件、历史命令、本机绑定的host、进程、Git分支、进程等。所有的命令行工具可以生成列表输出的都可以再通过管道pipe到fzf上进行搜索和查找
安装命令
brew install fzf
安装完后还需要安装键盘映射和模糊提示
$(brew --prefix)/opt/fzf/install
两大用法:ctrl + t查找目录下的条目、ctrl +r优化历史记录选择
目前我使用最多的是利用其进行历史记录的模糊查找,比传统的ctrl+r显示效果更好,效果如下

3.2 autojump-快速跳转
autojump提供了一种快速进行文件目录导航的方式。其效果就是实现目录间快速跳转,想去哪个目录直接j+ 目录名(甚至不用输全),不用频繁的cd了
安装命令
brew install autojump
修改 ~/.zshrc 文件,添加到plugins配置列表并在尾部追加如下内容,配置完后source生效
plugins=(
git
autojump
)
...
[ -f /usr/local/etc/profile.d/autojump.sh ] && . /usr/local/etc/profile.d/autojump.sh
用法很简单,想要跳转到哪个目录下直接使用j + 目录名跳转,甚至可以模糊输入,前提是有通过cd进入过这个目录,例如从任何目录跳转进入到git-workspace目录下
j git-workspace
或者模糊跳转
j git
3.3 tmate-终端远程
这个工具可以认为是终端版本teamviewer,在有网络的情况下远程终端连接并监视或操作
安装命令
brew install tmate
使用方法,例如要从A机器远程到B机器,在B机器上安装并运行tmate启动
# tmate
Tip: if you wish to use tmate only for remote access, run: tmate -F [0/0]
To see the following messages again, run in a tmate session: tmate show-messages
Press <q> or <ctrl-c> to continue
---------------------------------------------------------------------
Connecting to ssh.tmate.io...
Note: clear your terminal before sharing readonly access
web session read only: https://tmate.io/t/ro-xmVWpRRN6GGJrR4zWLMKrSt7T
ssh session read only: ssh ro-xmVWpRRN6GGJrR4zWLMKrSt7T@sfo2.tmate.io
web session: https://tmate.io/t/3PwVRseDmXpG74X43EQG9hBYq
ssh session: ssh 3PwVRseDmXpG74X43EQG9hBYq@sfo2.tmate.io
[tmate] ssh session: ssh 3PwVRseDmXpG74X43EQG9hBYq@sfo2.tmate.io
然后在A上就可以通过上面四种方式连接到B机器:web会话和ssh会话,分为只读和读写两种
具体原理可以查看官方文档
3.4 hadolint-对Dockerfile语法检查
Hadolint可以帮助进行Dockerfile语法检查,实现的是Dockerfile linter,其实现依据来自于Docker官网推荐的Dockerfile最佳实践
安装命令
brew install hadolint
使用
hadolint node.Dockerfile
node.Dockerfile:21 DL3007 Using latest is prone to errors if the image will ever update. Pin the version explicitly to a release tag
# 提示说镜像的tag使用latest不是最佳的,因为一旦镜像升级,下次再拉取的latest镜像可能就不是当前的版本了,应该明确具体的版本号
3.5 speedtest-测网速
speedtest是一个测网速的工具,其也有图形化工具
安装命令
brew tap teamookla/speedtest
brew update
brew install speedtest --force
使用
# speedtest
Speedtest by Ookla
Server: Beijing Unicom - Beijing (id = 5145)
ISP: China Unicom Beijing
Latency: 3.57 ms (0.88 ms jitter)
Download: 93.43 Mbps (data used: 44.5 MB)
Upload: 93.37 Mbps (data used: 42.2 MB)
Packet Loss: 0.0%
Result URL: https://www.speedtest.net/result/c/aa6513eb-a9b3-466b-8edd-92f73c59267f
此外还有一个用python脚本实现的,项目地址https://github.com/sivel/speedtest-cli,作用同样是测试网速,将此脚本下载并放到本地的bin目录下添加执行权限即可使用
# speedtest-cli
Retrieving speedtest.net configuration...
Testing from China Unicom Beijing (114.246.34.169)...
Retrieving speedtest.net server list...
Selecting best server based on ping...
Hosted by Beijing Broadband Network (Beijing) [1.72 km]: 4.659 ms
Testing download speed................................................................................
Download: 93.27 Mbit/s
Testing upload speed................................................................................................
Upload: 93.64 Mbit/s
3.6 glances-实时监控
类似于mac自带的活动监视器,以客户端/服务器端模式运行,远程监控可以通过终端、Web接口或API(XML-RPC和RESTful)来实现。除此之外,数据还可以导出至文件或外部数据库中。
采用Python开发,并使用了外部库来从目标系统收集数据。该工具基于开源架构实现,开发者可以根据自己的需求来增加新的插件或导出模块,可以监控的信息如下
- CPU 使用率
- 内存使用情况
- 内核统计信息和运行队列信息
- 磁盘 I/O 速度、传输和读/写比率
- 文件系统中的可用空间
- 磁盘适配器
- 网络 I/O 速度、传输和读/写比率
- 页面空间和页面速度
- 消耗资源最多的进程
- 计算机信息和系统资源
安装命令
brew install glances
效果如下

3.7 lrzsz-终端上传下载
lrzsz是一款在linux里可代替ftp上传和下载的程序,可以直接在终端进行文件上传下载,其传输协议是ZModem协议
安装命令
brew install lrzsz
在iTerm2上配置和使用lrzsz可以参考我之前的文章Mac下iTerm2配置lrzsz功能
3.8 neovim-增强版vim
neovim是一个增强版本的vim编辑器,其特性有异步任务和socket、内建terminal、26位真彩色支持、浮动窗口等
安装命令
brew install neovim
在iTerm2上配置和使用可以参考Mac电脑iterm中配置neovim入门与实践
4、小结
以上工具都极大提高了我日常工作和学习的效率,由于篇幅和时间关系,只列出了我对这些工具的常用用法,详细内容可以参考工具开源地址
本文只推荐了一部分,后面有机会再继续 ~

浙公网安备 33010602011771号