对我来说,没有一个好用的终端模拟软件,MBP就无法成为一个合格的生产力工具…
我的需求
- Session管理:支持保存Session,支持多层级分组,Session文件可编辑。
- 登录脚本:支持在每次登录之后执行自定义命令,支持节点跳转。
- 多窗口同时输入: 支持多窗口同时输入。
- 自定义快捷键:支持Session复制,Tab切换,Tab重命名。
- 高颜值:好心情的基础
- 快捷命令:支持快捷命令。
- 记录文本的操作日志
- 内嵌SFTP工具
软件基础
- iTerm2
- SessionManager(基于Python,pexpect库,iterm2库)
解决方案
- Session管理
由SessionManager实现,通过配置文件实现Session持久化,配置文件格式为JSON,理论上支持无限层级分组支,支持手动修改,支持一键打开多个Session或按目录打开Session。 - 登录脚本
由SessionManager实现,支持在每次登录之后通过expect/send语法执行自定义命令,支持无限节点跳转。 - 多窗口同时输入
由iTerm2原生能力实现,自定义快捷键触发,实现触发/取消多窗口同时输入。 - 自定义快捷键:支持Session复制,Tab切换,Tab重命名。
由iTerm2+macOS原生能力实现。 - 高颜值
由iTerm2原生能力实现。 - 快捷命令:支持快捷命令。
由iTerm2原生能力实现。 - 记录文本的操作日志
由iTerm2原生能力实现。 - 内嵌SFTP工具
待实现…
安装
- 安装iTerm2
- 下载SessionManager
1
git clone https://github.com/yutianqi/SessionManager.git
- 安装iTerm2 Python支持库iterm2
1
pip install iterm2
- 安装pexpect库
1
pip install pexpect
- 添加环境变量
1
2
3
4alias ssa="/home/ubuntu/code/SessionManager/ssmgr.py add"
alias ssd="/home/ubuntu/code/SessionManager/ssmgr.py delete -s"
alias ssl="/home/ubuntu/code/SessionManager/ssmgr.py list"
alias sso="/home/ubuntu/code/SessionManager/ssmgr.py open -s"
使用
- 增加Session
1
2
3ssa #
ssa -j #
ssa -f # - 删除Session
1
ssd [nodeId] #
- 查询Session
1
2
3ssl #
ssl -l #
ssl -l [nodeId] # - 打开Session
1
sso [nodeId] #
其他APP比对
APP | 优点 | 缺点 | 备注 |
---|---|---|---|
SecureCRT | 总的来说上面几点都满足了,应该是和我的需求契合度最高的了,也是我目前的选择 | 多窗口同时输入存在如下问题:1. 需要在单独的Command Windows进行,不支持上下查找历史命令,不支持tab联想,不支持类似Ctrl+C这种特殊命令,并且Command Windows会占用一部分额外的空间。2. 不稳定,这也是最让我无法接受的地方。Command Windows偶尔会无法输入,需要关掉再打开。在多窗口执行类似top命令后,偶现鼠标丢失,无法选择窗口文本。3. 设置例外窗口操作复杂。 | xxx |
Termius | Session只支持单一层级。 | cell | xxx |
iTerm2 | 不支持Session管理。 | cell | xxx |
Xshell7(CrossOver) | cell 6 | cell | CrossOver官方没说支持,安装之后无法启动 |
MobaXterm(CrossOver) | cell 6 | cell | CrossOver官方说支持,安装过程卡在安装.net 4.6.2 |
FinalShell | cell 6 | cell | 貌似已经停止维护了,而且网评资源占用很高 |
NuoShell | cell 6 | cell | 不支持多窗口同时输入。 |
xxxxxxxx | cell 6 | cell | 1.Session管理 2.登录脚本 3.多窗口同时输入 4.自定义快捷键 5.高颜值 6.支持快捷命令。7.支持记录操作日志 8.内嵌SFTP工具 |