技巧006:Mac下的SSH神器-Iterm2
#Tip #Ssh, #Shell, #Mac, #Iterm2
疫情在家,彻底从ubuntu转到了mac上来,于是重新构建了原ubuntu下的工具链。管理服务器是第一需要,于是就要有好用的ssh客户端(注意,ssh,不是spring-struts-hibernate,这个组合,严重影响shell的搜索精度)
1.好SSH端的标准
一个好的SSH客户端要有哪些特点呢?看过我ubuntu分享和博客的应该知道,
- 很好的CJK支持,也就是UTF8
- 能够有密码管理和私钥管理,每月更换,改一个即可。
- 能够ssh-scp/sftp联动,不是ZModem的sz/rz
- 能够多窗口执行命令,比如20台同时install
- 能够分屏,比如水平或垂直,对比命令或输出
- 能够容易的复制出ip,密码,sudo时使用
- 能够为tab页增加颜色,以区分dev和prd环境
- 能够分组管理服务器
- 跨平台,免费或不太贵,不用破解
2.你的Iterm2用瞎了
Iterm2
本身优点特别多,配置一下,可以媲美大部分商业软件,好些商业软件也基于Iterm2,人狠话不多,说你这么多年都没用好的功能。本文中实现了密码统一管理,为TAB打上颜色和水印,能够ssh-scp联动,分组管理服务器,最后送一个卷帘式滑出的半屏半透明shell
首先,你必须得上zsh
,catalina
已经默认上了这个zshell
,然后配备Oh My Zsh
,记住要用Antigen
管理,最后,搞个华丽的提示符,Powerlevel10k
,这样完成命令行的基本配置。
有些同学可能启动zsh的时候,等了很久才出现提示符,这个需要优化启动时间(以后会分享),线索是zprof
或xtrace
,常见的慢仔有NVM,anaconda
3.统一管理密码
在众多 window菜单中,PasswordManager是最有用的一个,就是管理密码。统一管理密码,主要是为了每月更换密码时的方便和安全。有些人使用 expert命令,以明文的形式管理密码,不可取。
4.颜色标识和打水印
工业化质量要求,必须能明确知道当前窗口的安全等级,越醒目,越直接越好。
设置不同安全等级的Profile,然后使用高级功能自动切换。注意③是个小妙招,它能为打开的窗口增加一个大大的水印效果。这强化了颜色区分,更能知道哪个窗口是dev,哪个是prd。
为tab设置颜色,也设置光标的颜色。比如正式环境(PRD)是红色,dev是蓝色,本地无色或绿色。有的时候,需要考虑色弱或者红绿色盲。其实这部分人群挺多的。下图可以自动切换 profile的,自己看文档,主要是用户,主机和路径匹配。
5.自动登录和变色
可以实现自动登录,①集成shell,实现远程文件的scp下载(按CMD键+鼠标点击即可)② Tab自动变色(红)和水印(仔细看箭头位置),方便识别远程PRD环境。
这里需要组合拳了,ssh config editor
(收费,18软妹币),这个工具实际上是代替了手动编辑 ~/.ssh/config
,并增加了便于GUI识别和设置功能。如果熟知了其格式,在文本编辑器中直接编辑更方便快捷。
此外,还需要修改本地hosts,已完成 iterm2的shell集成scp功能。这里需要把所以ip都以设定主机名(按域名管理),保持 config中的HostName一致。
同时,在ssh config editor
中设置,使用Iterm2
和user@hostname:port
这样,当我们在顶部菜单栏,登录远程服务器时,如上图的srj@dev(可以看到图标是DEV),然后Iterm2打开一个新的tab页,在提示输入密码时,打开密码管理器(alt-cmd-f),根据标题的user和host,选择对应的密码。
此外,ssh config editor还提供了更好的参数设置,如下图,可以把不少命令行参数,表现的很直观,做了格式限定,也不容易犯错。
6.卷帘式滑出shell
这个功能特别舒服,比如,我设置的按2次Ctrl
(以后会讲改键,目前我是单独按Caps
等于Esc
,连续按或与其他键一起按等于Ctrl
),可以从最顶部滑出一个置顶半通明的半屏shell,用来执行一些小命令,然后,在嗖的让他会自动隐藏。
那么,怎么设置呢?细心的读者,大概会注意到最开始的截图中,除了prd,dev的profile外,还有一个奇怪的家伙,HotkeyGuake,就是它,因为我在ubuntu下用Guake和tilda实现的这个功能,同时Quake是我大学时最喜欢的游戏之一。
最关键的点是这里,而颜色,透明,半屏,动画那些都不足为道。
7.结束语
什么是攻城狮精神,跟过我的人一定有体会,就是要琢磨事情,善其事利其器。正所谓,大道易得,一术难求。攻城狮浮躁不得,不用沉迷流行的概念和话术,实打实的写好自己的代码,调教好顺手的攻击,自然而然的就会有所体会和手感,也就能很好的理解大道至简的含义了。
–
※ 我们的征途是星辰大海 ※