0%

SessionManager:macOS下的终端模拟解决方案

对我来说,没有一个好用的终端模拟软件,MBP就无法成为一个合格的生产力工具…

我的需求

  1. Session管理:支持保存Session,支持多层级分组,Session文件可编辑。
  2. 登录脚本:支持在每次登录之后执行自定义命令,支持节点跳转。
  3. 多窗口同时输入: 支持多窗口同时输入。
  4. 自定义快捷键:支持Session复制,Tab切换,Tab重命名。
  5. 高颜值:好心情的基础
  6. 快捷命令:支持快捷命令。
  7. 记录文本的操作日志
  8. 内嵌SFTP工具

软件基础

解决方案

  1. Session管理
    由SessionManager实现,通过配置文件实现Session持久化,配置文件格式为JSON,理论上支持无限层级分组支,支持手动修改,支持一键打开多个Session或按目录打开Session。
  2. 登录脚本
    由SessionManager实现,支持在每次登录之后通过expect/send语法执行自定义命令,支持无限节点跳转。
  3. 多窗口同时输入
    由iTerm2原生能力实现,自定义快捷键触发,实现触发/取消多窗口同时输入。
  4. 自定义快捷键:支持Session复制,Tab切换,Tab重命名。
    由iTerm2+macOS原生能力实现。
  5. 高颜值
    由iTerm2原生能力实现。
  6. 快捷命令:支持快捷命令。
    由iTerm2原生能力实现。
  7. 记录文本的操作日志
    由iTerm2原生能力实现。
  8. 内嵌SFTP工具
    待实现…

安装

  1. 安装iTerm2
  2. 下载SessionManager
    1
    git clone https://github.com/yutianqi/SessionManager.git
  3. 安装iTerm2 Python支持库iterm2
    1
    pip install iterm2
  4. 安装pexpect库
    1
    pip install pexpect
  5. 添加环境变量
    1
    2
    3
    4
    alias 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"

使用

  1. 增加Session
    1
    2
    3
    ssa              # 
    ssa -j #
    ssa -f #
  2. 删除Session
    1
    ssd [nodeId]     # 
  3. 查询Session
    1
    2
    3
    ssl              # 
    ssl -l #
    ssl -l [nodeId] #
  4. 打开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工具