前言
笔者今年年中将工作平台从windows切换到了mac os。因为对mac系统不是太熟,在过渡期间,使用了mac下安装虚拟机跑windows的临时方案(使用Parallels Desktop)。随着对mac系统的逐渐了解,我也逐渐找到了mac下对应windows软件的代替品,但有一款软件,一直没找到合适的,就是SecureCRT。
本来以为secureCRT是我第一款更换的软件,因为当时发现secureCRT有mac版本。谁知道刚打开软件就傻眼了,连最基本的配置导入都没有,而且各种bug,一句话,mac下的secureCRT不是我针对它,的确非常不好用。
考虑到在secureCRT上一大堆做了登录脚本的配置文件,就还是一直使用的虚拟机方案,但为了这一款软件就装个windows虚拟机,占空间不说,还消耗不少系统资源。利用国庆长假终于下定决定,将其替换掉!
替换要求
因为我是使用堡垒机再跳转到服务器上,所以我需要一款支持运行登录脚本的替借品;第二是支持配置管理,因为笔者要管理的服务器有上百台,使用mac自带的terminal很难满足笔者的要求。
iTerm2
经过一番搜寻和测试,最终我选择了iTerm2作为secureCRT的替代品。一来它是开源的,二来口碑不错,最主要的是能够支持我的替换要求,但是要和mac下的一款命令行程序expect结合起来使用才能实现登录脚本的功能。
安装好软件后,初进软件,似乎和mac自带的terminal看不出来太大的区别。人不可貌相,软件也一样,iTerm2的好多实用功能都隐藏在菜单栏里。我们一起来看看吧。
会话主机配置
笔者的100台服务器,就需要建立100个配置文件,可以先建立1个配置文件,然后快速复制,但每台服务器的登录IP你得自己一一设置,偷不了懒。
点击Profiles->Open Profiles,或者使用按快捷键cmd+O,弹出配置菜单
如果第一次进入配置界面,这里会是空空如也,点击“Edit Profiles”,弹出一个新窗口。
点击“+”号即可新建一个配置文件,也可以随时点减号删除一个配置。在这里我们只是进行了基本配置。如果你登录服务器并不需要堡垒机跳转,那么点击command选项,并在其后的输入框里输入内容,比如"ssh root@yourServerIP",其实就是运行一条命令行下的命令。
登录脚本配置
笔者因为使用了堡垒机跳转,所以选择的login shell,并在“Send text at start:”处填写了一条命令"expect tx.exp"。expect
是Mac系统自带的一个小程序,功能是捕捉屏幕上出现的指定字符,如果满足条件,就执行一系列的命令。
#tx.exp文件,可以自定义名称
#固定格式
#!/usr/bin/expect -f
#设置命令执行超时时间
set timeout 30
#执行以SSH方式登录指定服务器的指令
spawn ssh -p 22 [email protected]
#如果屏幕上出现"#"号,执行send后的命令,"#"号是linux服务器root的默认提示符,当出现"#"号表示已经登录到堡垒机了。
expect "#"
#在堡垒机上执行命令,-p指定ssh端口为22222,\r表示模拟按一次回车
send "ssh -p22222 [email protected]\r"
通过以上配置,我们就完成了1台会话主机的配置,第1次配置的确稍微有点麻烦,但后面就简单许多,只需依葫芦画瓢。
配置好后,我们再次按cmd+o打开配置窗口。
刚才配置好的一个会话配置文件已经出现在了列表中,点击"New Tab"或者"New Window"即可打开终端并执行我们事先写好的脚本,即先登录跳转机,再通过跳转机连接到目标服务器。
配置文件前面有个小五角星,表示默认要打开的会话配置文件。
强大的搜索功能
按住cmd+shift+O,会弹出快捷会话配置列表窗口。
这个搜索功能相比secureCRT简直是强大到离谱,可以根据你之前输入的名称或者标签查询,当你管理的会话配置列表超过50台以上时,你就能感觉到他的确太好用了。
+号表示开启会话,人型图标表示修改配置文件设置。
我们点击+号行试一试
可以看到已经正常登录到了我的堡垒机。右边框红的“tx”也是之前在配置文件里面做的设置,具体是
Badge
选项,当你打开多个会话窗口的时候,提示你每个窗口是属于哪一个会话配置文件,很贴心的小功能。
广播输入功能
当你要在对多个会话窗口执行同一条命令,这个功能就派上用场了。你只需在其一个窗口输入命令,其它窗口会根据你选择的广播范围同步输入命令。
"Broadcast Input toAll Panes in All Tabs"就是开启当前窗口所有的tab页同步功能,再次点击该选项即可关闭。
粘贴历史命令功能
先选中“Paste History”功能,再按shift+cmd+B键,即可调出粘贴历史命令窗口
之前复制到剪贴板的命令都出现在了右侧的窗口上,使用鼠标双击即可将命令填写到当剪终端中,也是我觉得很实用的一个功能。
结语
iTerm作为一款代替secureCRT的软件,我认为是合格的,特别是它的搜索功能,让我爱不释手,希望同样在寻找类似软件的你,可以试一试这款开源免费软件。
更多文章请访问我的公 众 号:Ted的技术乐园。