1. 先说说我为什么受够了Xshell和SecureCRT
1.1 那些年攒下的连接配置
我是一名做Linux服务器运维和嵌入式开发的工程师,从2016年开始,Xshell一直是我Windows机器上的标配。那时候觉得Xshell够用、简洁,一个窗口管所有服务器,连接记录、配色方案、日志保存都做得不错。SecureCRT我也用过,确实强大,尤其它的脚本和按钮栏功能,但界面满满的上世纪风格,而且价格对我来说并不便宜,网上能找到的注册机之类的东西又总让人不踏实。
真正开始让我动摇的是去年。我换了新电脑,从Windows切到macOS办公,结果发现Xshell压根没有Mac版。所以我只能把十几年积攒下来的会话配置、密钥路径、跳板机设置这些信息一个个手动搬过来。那个过程有多痛苦,懂的人都懂:Xshell的连接信息存在注册表里,SecureCRT存在Sessions目录下的ini文件里,格式还都不一样。我在Mac上装了一堆终端工具试来试去,没有一款能让我有一种“所有资产都在手边”的感觉。
1.2 跨平台需求其实早就存在了
很多人可能觉得终端工具能连上SSH不就行了?问题在于,真正干活的时候你会发现,连接方式多了以后,工具是否跨平台已经不是“方便不方便”的问题,而是一个工作流连续性的问题。
比如我日常的状态是:公司Windows台式机一台、家里Linux工作站一台、出差带的MacBook一台。以前我在三台机器上维护三套装终端工具,会话配置对不齐,经常出现某台服务器只在公司台式机上配置过、回家想连却找不到地址的尴尬。我也试过用Keepass这类工具统一保存服务器密码,但终端工具不配合,体验始终是割裂的。
所以当我第一次听说的Tabby这个项目时,我并没有太在意。直到我把它的GitHub仓库翻了一遍,看到那个已经超过五万一千颗星的数量,才意识到这可能不是一个小玩具。
1.3 Tabby是怎么进入我视野的
Tabby这个名字你可能不熟,但如果说它的旧名字Terminus,不少老人应该还有印象。这是一个基于TypeScript开发的跨平台终端模拟器,GitHub仓库里明确写着支持Windows、macOS和Linux三端。最让我心动的一点是:它的会话配置、主题、插件都存储在同一个配置目录下,也就是说我要做的就是把配置文件从旧机器拷到新机器,所有东西直接恢复。
当时我就在Windows和Mac上分别装了一个版本做对比测试,第一印象是界面确实好看、现代,完全不是SecureCRT那种老态龙钟的样子。性能方面也没我想象中Electron应用那么拉胯,日常连接服务器、跑top、看日志滚动,都很流畅。测试了不到一周,我决定把Xshell和SecureCRT彻底卸了。
2. Tabby能打的主要原因:多端跨平台加开源的核心逻辑
2.1 底层技术栈决定了它的上限
先给不熟悉的读者科普一下Tabby的底层。Tabby是Electron应用,主界面用HTML/CSS/TypeScript构建,后端跑Node.js。对于终端模拟器来说,Electron并非性能最优解,但它在跨平台UI统一这件事上节省了巨大的开发成本。
当然,懂行的朋友会担心一个问题:Electron做终端,渲染大量ANSI彩色文本时会不会卡?
我用下来的感受是,在常规操作范围内,例如vim编辑文件、htop监控资源、git log翻页、less查看日志,Tabby的渲染都跟得上。它本质上是用浏览器引擎做文本渲染,只要不做极端的一屏刷上万行彩色日志,基本感觉不到和原生终端工具的区别。如果非要说谁更快,单论纯CPU刷屏效率,原生C++写的SecureCRT理论上会好一些,但日常使用中的体感差距已经很小。
2.2 三端通用带来的实际价值
Tabby支持Windows、macOS和Linux,这意味着什么?意味着你的整个终端工作流可以在三套系统之间平滑迁移。
我现在的状态是:
- 公司Windows台式机装Tabby Portable版,插上移动硬盘就能跑,不写入额外系统状态;
- macBook上装Tabby的dmg版本,快捷键和Windows端保持一致;
- Linux工作站上直接用官方仓库装deb包。
三台机器的Tabby版本一升级,配置导出导入一次即可同步,连接信息、主题、快捷键完全一致。跟过去的Xshell注册表方案比,这体验就是天壤之别。
跨平台还有一个隐藏好处:团队协同时,就算队友用的系统不一样,大家用的工具界面是一样的,截图交流、远程指导都方便很多。我同事用Xshell遇到问题,把截图发过来,如果他是Tabby我们几乎不需要额外解释。
2.3 51k star背后的生态价值
一个开源项目的star数当然不直接等于质量,但超过五万颗星意味着什么?意味着这个项目有足够多的用户在真实环境中使用和提issue,有足够多的开发者贡献插件和修复bug。
我比较看重的是Tabby的插件机制。它沿用VS Code那套思路,通过内置的插件市场可以安装主题、字体、插件来扩展功能。这一点是Xshell和SecureCRT给不了的:它们是封闭商业软件,功能上限已经被厂商写死了,你要是想要某个没有的功能,只能去厂商官网“反馈需求”,然后等一个不一定有的版本更新。
Tabby不一样,你甚至可以自己动手写一个插件。它的插件本质上是一个打包好的前端扩展,通过Tabby暴露的API与终端交互。对于有Node.js基础的人来说,扩展一个右键菜单、一个状态栏组件、一个新的配色主题,并不是什么难事。
3. 从安装到建连:照着我这几步走不会踩坑
3.1 各平台安装方式和注意事项
Tabby的安装渠道很丰富,最简单的方法是从GitHub Releases页面下载对应系统的安装包。我这里列出三个平台的安装要点:
- Windows:有两类安装包,一个是安装版(Setup.exe),一个是绿色便携版(portable)。我建议重度用户直接用便携版,因为它的所有配置都保存在安装目录下,方便备份,重装系统不会丢。如果选择安装版,配置文件会被放在
%APPDATA%\tabby下。 - macOS:直接下载dmg拖入Applications目录。macOS首次打开会提示“无法验证开发者”,需要到“系统偏好设置-隐私与安全性”里手动允许一次。这不是病毒提示,只是未签名应用的常规提示。
- Linux:官方提供deb和rpm包,也可以从Snap商店直接安装。我自己的Linux机器是Ubuntu,直接
sudo dpkg -i tabby_xxx_amd64.deb装好就能用,没有任何额外的依赖坑。
3.2 第一次启动需要设置的四个关键项
装好后第一次启动,Tabby会走一个初始化向导。这里我建议重点确认四个设置项,它们决定你后续的体验:
第一是“外观”里的“亮色/暗色主题”和“背景透明度”。我会把背景调成半透明,干活的时候还能瞥到桌面上的浏览器,不用来回切换窗口。
第二是“快捷键”方案。默认快捷键已经不错,但你一定要手动确认一下“复制”和“粘贴”是不是你习惯的键位。Xshell老用户默认是Ctrl+Insert和Shift+Insert,Tabby默认是Ctrl+Shift+C和Ctrl+Shift+V,这两者不冲突,可以在快捷键设置里改。
第三是“配置目录”位置。Tabby允许你在设置里直接查看和修改配置文件路径。我强烈建议把配置目录放到一个固定位置并定期备份。
第四是“启动方式”。Tabby支持开机自启、最小化到托盘。如果你跟我一样每天要开无数个连接,这个功能能节省不少时间。
3.3 新建SSH连接的完整流程
这一步我来实际操作一遍。Tabby连接SSH有两种常用方式:一种是在地址输入框里直接输入ssh user@host:port,按回车;另一种是点击界面上的“新建连接”按钮,在弹窗里填信息。
我建议首次使用走一遍“新建连接”界面:
- 点击左上角文件夹图标,展开连接列表;
- 点击“新建连接”,协议选SSH;
- 主机地址填服务器IP或域名,端口默认22,用户名填登录用户;
- 认证方式:如果使用密码,直接填;如果使用密钥,选中私钥文件的路径,推荐用OpenSSH格式的私钥,Tabby对
id_rsa和id_ed25519的支持都很好; - 保存后双击连接。
比较贴心的是,Tabby对密钥文件的处理比Xshell方便。Xshell的密钥格式是它自己的.pem文件,OpenSSH密钥还需要经过转换工具才能导入。Tabby直接读取你的OpenSSH私钥,路径填上去就能用,省掉一层转换步骤。
3.4 把Xshell的连接记录搬过来
从Xshell迁移连接记录,有两个土办法:
第一种:如果连接不多,直接在Tabby里手动重建,顺便重新梳理一遍服务器分组和命名。 第二种:把Xshell的配置导出成CSV,然后写一个小脚本转换成Tabby的配置格式,写进Tabby的config.yaml文件里。
Tabby的配置文件是一个YAML格式文件,里面通过profiles字段保存所有连接信息。一个典型的SSH连接配置长这样:
profiles: - id: 1 type: ssh name: "prod-web-01" host: "192.168.1.101" port: 22 username: "root" auth: "password"如果你准备脚本化迁移,建议先手动创建一个连接,再去看config.yaml里自动生成了哪些字段,照着那个结构填你的历史数据。直接拿网上的模板套,可能因为字段版本差异导致Tabby读不出来。
我当初为了迁移一百多个老连接,写了一个Python脚本去解析Xshell导出的注册表数据,再生成YAML。整个过程大概花了一个下午,但之后再也不用回头开Xshell了。如果你不想折腾,只迁移常用连接也够用。
4. 日常操作体验:分屏、搜索、SFTP一个都不少
4.1 标签页和分屏的组合用法
Tabby的标签页操作逻辑和浏览器一模一样,中键关闭、拖拽排序、多窗口分离,这些基础能力它都支持。真正让效率提升的是它的分屏功能。
在终端里选择“分割终端”,可以把当前标签页分成上下左右几个区域。我平时最常用的场景是:左边开着服务器A的top命令,右边同时开着服务器B的tail -f日志,上下分屏一边敲vim一边看编译输出。
分屏后每个小窗格是独立会话,可以单独调整字体大小,也可以再次分割。这个特性在实际排障时非常香。以前用Xshell,想同时看两台服务器的状态必须开两个窗口,来回切换,时间久了眼睛都花了。
Tabby还允许你在一个窗口里把某个标签页拖出来变成独立浮动窗口。我经常把长时间运行的编译任务拖到副屏,主屏继续做别的工作。这种“窗口自由拆分”的能力在传统终端工具里并不多见。
4.2 全文搜索:不只是搜当前屏幕
终端工具都有搜索功能,但大多数只能搜索当前屏幕里显示的内容。Tabby的搜索可以搜索“滚动缓冲区”,也就是你往前翻过的那些历史输出。
当你执行了一条命令,产生了几百行日志,想从里面找出某个关键字,Tabby的Ctrl+Shift+F可以全局搜索缓冲区内容,高亮所有匹配项,还能快速跳转。这个功能在排障时简直救命。我记得有一次线上服务报错,日志刷得非常快,界面上的错误信息一闪而过,用Tabby的搜索直接定位到了错误码出现的位置,省去了重新复现的麻烦。
对比下来,Xshell虽然也支持缓冲区里搜索,但它的搜索面板比较简陋,体验远不如Tabby自然。SecureCRT倒是自带这个能力,但界面交互依然停留在老一代工具的水准。
4.3 内置SFTP:不用再单独开一个文件传输工具
Xshell的官方配套是Xftp,SecureCRT的配套是SecureFX。Tabby呢?内置了SFTP面板。
在已建立的SSH连接中,按快捷键或者点击连接信息右侧的“SFTP”按钮,就能在当前标签页下方展开一个文件管理面板。这个面板双击文件即可下载到本地,也可以拖拽本地文件上传到服务器。它还支持在远程目录右键直接编辑文件,修改完成后自动上传,针对一些简单的配置文件调整,不用来回下载上传。
我用Xftp很多年,坦白说Xftp的批量传输能力(尤其是多目录断点续传)比Tabby内置SFTP要强。但日常改配置、传个小文件,Tabby这个内置面板足够用了,而且它在一个界面里完成,不用来回切换工具。如果传输量很大,我一般还是用命令行rsync或者scp,那也不是Tabby能帮上忙的领域。
4.4 复制粘贴的高效姿势
终端工具的复制粘贴,其实是很容易被忽略但影响非常大的体验细节。
Tabby默认的复制粘贴快捷键是Ctrl+Shift+C和Ctrl+Shift+V,和浏览器、编辑器的习惯保持一致。它还有一个很方便的行为:你选中一段文本后,右键直接就会弹出“复制”菜单,不用先按快捷键再点复制。
Tabby对粘贴内容里的特殊字符也有处理能力。比如你从网页上复制一段代码,里面可能带了HTML实体或特殊空格,粘贴进终端可能执行出错。Tabby会在粘贴前弹一个确认框,问你是“粘贴纯文本”还是按原样粘贴。这个细节,我用Xshell的时候从来没遇到过,印象特别深。
还有一个隐藏技巧:在设置里可以开启“单击即粘贴”或者“双击即选中整行”,根据你的操作习惯选一个,能明显减少鼠标操作次数。我自己开了“单击即粘贴”,配合鼠标中键粘贴,效率很高。
5. 进阶玩法:主题、插件和配置同步
5.1 主题定制:让终端不再是黑底白字的代名词
Tabby的主题系统做得非常成熟,这应该是它“好看”这个标签的最大支撑。
内置的主题已经有不少,比如One Dark、Dracula、Nord等主流程序员配色。你可以在设置里实时预览切换,不用重启。每个主题下还能单独调整背景透明度、前景色和背景色,如果你的窗口背景是半透明,叠加毛玻璃效果后颜值会直接提升一个档次。
在配色之外,Tabby还支持自定义字体。可以指定一个等宽字体,比如JetBrains Mono、Fira Code,还能开启字体连字效果。我用了很长时间JetBrains Mono,配合主题,整个终端看起来非常清爽。
如果你对主题有自己的想法,Tabby还提供了主题编辑器。你可以从现有主题复制一份,然后逐项调整颜色。它甚至可以把当前主题导出一份JSON文件分享给同事。终端外观这个东西,很多人觉得无所谓,但我觉得一个看得顺眼的界面能极大减少长时间工作的疲劳感。
5.2 插件系统:按需扩展功能
Tabby的插件市场虽然不如VS Code那么庞大,但已经覆盖了常用需求。我挑几个我实际用过的插件说说:
- tabby-cloud-storage:把配置文件同步到S3兼容的对象存储,我把它配合MinIO实现多台机器的配置同步。
- tabby-serial:官方封装好的串口插件,嵌入式开发必用。
- tabby-quick-cmds:在底部快速选择预定义的命令片段,避免重复输入一长串命令。
安装插件的方式有两种:一种是在Tabby设置里的“插件”页面浏览安装,另一种是把插件项目克隆到本地然后手动安装。后者适合你想对开源的插件做二次修改的情况。
插件系统最大的意义是给这个工具留出了成长空间。比如我在做一个内部运维平台的时候,希望终端工具能在连接特定主机后自动执行一段初始化脚本、展示服务器状态摘要信息,我用Tabby的插件API在不到一天的时间内就实现了一个简单的版本,这在Xshell时代是完全做不到的。
5.3 配置同步:多设备用户的核心诉求
开头我提到Xshell迁移配置很痛苦,Tabby在这块的解决方案是开放配置目录,让用户自己决定怎么同步。
Tabby的设置界面里有一个“配置文件存储位置”选项,默认是本地,但你可以改成“Git存储”或者“云同步”。Git存储的意思是,Tabby会把配置变更自动提交到一个Git仓库里,多台机器共享这个仓库就能实现无缝同步。
我自己搭建了一个内部Gitea服务,路径填进去,三台机器拉取同一个仓库。每次我在公司机器上添加一个新服务器连接,回家打开Mac,已经自动同步好了。爽快,真的爽。
如果你没有自建Git服务器的条件,用GitHub私有仓库或者任何支持Git协议的远程仓库也可以,甚至可以直接把配置目录放到OneDrive、iCloud这类云盘里,靠文件系统实时同步。反正Tabby不锁数据,你怎么折腾都行。
6. 实战中踩过的坑和几个实用技巧
6.1 Electron应用的通病和缓解办法
必须实事求是地承认,Electron应用在内存占用上确实比原生应用高。Tabby在启动阶段会占用大概两三百兆内存,比Xshell略高。这个代价换来的跨平台UI开发效率和那么好看的界面,我认为是值得的。
如果你真的在意内存,有几个小技巧可以缓解:
- 关闭不需要的插件,每个插件都会常驻;
- 减少保留的标签页历史,设置里限定关闭标签页后的恢复数量;
- 长时间不用的会话直接关闭标签页,别开一堆挂着。
我实测过,一个SSH连接处于空闲状态时,Tabby占用的内存增量并不大,真正吃内存的是很多标签页同时滚动日志的场景。
6.2 几个我用得最顺手的快捷键和配置
分享几个我每天都会用的快捷键,它们极大提升了我的终端操作效率:
Ctrl+Shift+P:打开命令面板,所有操作都能在这里搜索,不需要记住各种菜单位置;Ctrl+Shift+[/Ctrl+Shift+]:切换相邻标签页;Ctrl+Shift+D:对当前会话执行“在服务器侧关闭”,遇到卡死的会话时比关闭标签页更干净;Ctrl+Alt+K:清空当前会话缓冲,有时候终端的输出刷多了,直接清掉更方便看新日志。
设置里还有一个“全局快捷键”的选项,可以让Tabby在后台也能响应快捷键。我把“切换显示主窗口”设为Ctrl+Alt+T,即使Tabby在后台,按一下也能立刻呼出主窗口,比我用系统级终端工具更顺手。
6.3 遇到过的连接异常问题
Tabby不是没有坑。我遇到过两个比较典型的问题:
第一个,连接某台服务器时提示“Host key verification failed”。这个提示的意思是远端主机密钥变了。解决办法是在Tabby的连接配置里重置主机密钥历史,或者在设置里清空“已知主机密钥数据”。这个操作类似OpenSSH里清空known_hosts文件对应行,不复杂,但第一次遇到时会找很久。
第二个,Windows下Tabby打开本地终端默认是PowerShell,但我日常用Git Bash更习惯。解决方式是在配置里新增一个本地Shell,类型选Git Bash,再指定它的可执行文件路径。我遇到过一些同事以为Tabby只能用微软的PowerShell就放弃了它,其实是没找到自定义本地Shell的入口,有点可惜。
6.4 和Xshell、SecureCRT放在一起,最终的结论
最后用一张表总结我迁移三个月来的直观感受:
| 对比维度 | Xshell | SecureCRT | Tabby |
|---|---|---|---|
| 价格 | 免费版/收费专业版 | 商业收费 | 开源免费 |
| 跨平台 | 仅Windows | Windows/macOS/Linux | Windows/macOS/Linux |
| 界面观感 | 中规中矩 | 偏老式 | 现代美观 |
| 插件扩展 | 无 | 部分脚本 | 完整插件系统 |
| 内置SFTP | 需单独Xftp | 需SecureFX | 自带SFTP面板 |
| 配置同步 | 注册表,难迁移 | 文件目录,但格式私有 | 开放目录,支持Git同步 |
| 内存占用 | 较低 | 较低 | 略高但可接受 |
| 开源 | 否 | 否 | 是 |
说句公道话,Xshell和SecureCRT都是成熟的好工具,尤其在某些特定领域(比如大规模会话管理、串口调试)有自己的优势。但Tabby在“跨平台、开源免费、现代化界面、可扩展”这四个维度上的综合表现,确实是目前市面上少有的。
如果你也跟我一样受够了维护两套终端工具、厌倦了公司电脑和个人电脑之间配置割裂的状态,我觉得可以花一个下午把Tabby装起来试一试用。它不一定每个方面都比Xshell强,但那种“所有终端资产都在手边、随时可以跨机器迁移”的掌控感,是商业软件很难给你的。