
1. 先说说我为什么受够了Xshell和SecureCRT1.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老用户默认是CtrlInsert和ShiftInsertTabby默认是CtrlShiftC和CtrlShiftV这两者不冲突可以在快捷键设置里改。第三是“配置目录”位置。Tabby允许你在设置里直接查看和修改配置文件路径。我强烈建议把配置目录放到一个固定位置并定期备份。第四是“启动方式”。Tabby支持开机自启、最小化到托盘。如果你跟我一样每天要开无数个连接这个功能能节省不少时间。3.3 新建SSH连接的完整流程这一步我来实际操作一遍。Tabby连接SSH有两种常用方式一种是在地址输入框里直接输入ssh userhost: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的CtrlShiftF可以全局搜索缓冲区内容高亮所有匹配项还能快速跳转。这个功能在排障时简直救命。我记得有一次线上服务报错日志刷得非常快界面上的错误信息一闪而过用Tabby的搜索直接定位到了错误码出现的位置省去了重新复现的麻烦。对比下来Xshell虽然也支持缓冲区里搜索但它的搜索面板比较简陋体验远不如Tabby自然。SecureCRT倒是自带这个能力但界面交互依然停留在老一代工具的水准。4.3 内置SFTP不用再单独开一个文件传输工具Xshell的官方配套是XftpSecureCRT的配套是SecureFX。Tabby呢内置了SFTP面板。在已建立的SSH连接中按快捷键或者点击连接信息右侧的“SFTP”按钮就能在当前标签页下方展开一个文件管理面板。这个面板双击文件即可下载到本地也可以拖拽本地文件上传到服务器。它还支持在远程目录右键直接编辑文件修改完成后自动上传针对一些简单的配置文件调整不用来回下载上传。我用Xftp很多年坦白说Xftp的批量传输能力尤其是多目录断点续传比Tabby内置SFTP要强。但日常改配置、传个小文件Tabby这个内置面板足够用了而且它在一个界面里完成不用来回切换工具。如果传输量很大我一般还是用命令行rsync或者scp那也不是Tabby能帮上忙的领域。4.4 复制粘贴的高效姿势终端工具的复制粘贴其实是很容易被忽略但影响非常大的体验细节。Tabby默认的复制粘贴快捷键是CtrlShiftC和CtrlShiftV和浏览器、编辑器的习惯保持一致。它还有一个很方便的行为你选中一段文本后右键直接就会弹出“复制”菜单不用先按快捷键再点复制。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 几个我用得最顺手的快捷键和配置分享几个我每天都会用的快捷键它们极大提升了我的终端操作效率CtrlShiftP打开命令面板所有操作都能在这里搜索不需要记住各种菜单位置CtrlShift[/CtrlShift]切换相邻标签页CtrlShiftD对当前会话执行“在服务器侧关闭”遇到卡死的会话时比关闭标签页更干净CtrlAltK清空当前会话缓冲有时候终端的输出刷多了直接清掉更方便看新日志。设置里还有一个“全局快捷键”的选项可以让Tabby在后台也能响应快捷键。我把“切换显示主窗口”设为CtrlAltT即使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放在一起最终的结论最后用一张表总结我迁移三个月来的直观感受对比维度XshellSecureCRTTabby价格免费版/收费专业版商业收费开源免费跨平台仅WindowsWindows/macOS/LinuxWindows/macOS/Linux界面观感中规中矩偏老式现代美观插件扩展无部分脚本完整插件系统内置SFTP需单独Xftp需SecureFX自带SFTP面板配置同步注册表难迁移文件目录但格式私有开放目录支持Git同步内存占用较低较低略高但可接受开源否否是说句公道话Xshell和SecureCRT都是成熟的好工具尤其在某些特定领域比如大规模会话管理、串口调试有自己的优势。但Tabby在“跨平台、开源免费、现代化界面、可扩展”这四个维度上的综合表现确实是目前市面上少有的。如果你也跟我一样受够了维护两套终端工具、厌倦了公司电脑和个人电脑之间配置割裂的状态我觉得可以花一个下午把Tabby装起来试一试用。它不一定每个方面都比Xshell强但那种“所有终端资产都在手边、随时可以跨机器迁移”的掌控感是商业软件很难给你的。