1. 为什么终端工具这件事,值得你花一整个下午重新梳理?
我做嵌入式开发和Linux运维这十多年,换过至少17个工位,重装过43次系统,但有一样东西我永远会第一时间装好——不是IDE,不是浏览器,而是终端工具。它不像编辑器那样天天炫技,也不像Git那样被写进每份简历,但它才是你和服务器、开发板、容器、远程设备之间最真实、最直接的“神经末梢”。你敲下的每一行ls、ssh、make、tail -f,背后都是它在默默扛着字符流、编码转换、会话保持、密钥管理、日志归档这些看不见却致命的活儿。
最近帮一个做i.MX6ULL智能硬件的团队排查中文乱码问题,他们用的是原生Ubuntu终端连串口,烧录时中文路径全变问号,调试日志里全是,最后发现根本不是驱动或内核配置的问题,而是终端本身没正确声明UTF-8 locale,也没启用宽字符支持。换上Mobaxterm后,勾选“UTF-8 encoding”和“Enable wide character support”,两分钟解决。这种事我见过太多:XShell里cd ..回退失败,不是命令错了,是它的“键盘映射模式”被误设成“SecureCRT兼容”;SecureCRT日志文件名带时间戳却总生成乱码,是因为日志路径用了中文,而它的默认日志编码是ISO-8859-1;Termius在iOS上粘贴长命令崩溃,不是App bug,是你没关掉“安全键盘”——这个开关本意是防录屏窃取密码,结果顺手把所有剪贴板输入都拦了。
所以今天这篇,不讲“哪款最好”,不搞参数对比表打分,而是从一个老手每天真实面对的7类硬需求出发:串口调试要稳、SSH连接要快、多标签要不卡、中文显示要准、密钥管理要省心、日志归档要可查、跨平台要无缝。我会带你逐个拆解Cmder、SecureCRT、MobaXterm、XShell、Termius这5款主力工具(另2款是Windows Terminal和Tabby,补足开源与极简视角),说清楚它们在每类场景下“能做什么”、“为什么能”、“在哪容易翻车”,以及我压箱底的3个配置模板和2个避坑检查清单。如果你还在用Windows自带cmd连树莓派,或者每次开SecureCRT都要手动输一遍IP和端口,那这篇就是为你写的——它不教你“怎么安装”,而是告诉你“装完之后,第一件事该改什么”。
2. 核心需求拆解:7类真实场景,决定你该选谁
2.1 场景一:嵌入式串口调试——稳定压倒一切,延迟必须低于20ms
这是嵌入式工程师的命门。你用USB转TTL线连i.MX6ULL、STM32或ESP32,发一个AT+RST指令,期望模块立刻复位并返回OK,结果终端卡住半秒才刷出字符,或者干脆丢掉前两个字节——这时候再好的SSH功能都救不了你。串口通信本质是低速、无缓冲、强时序的,任何中间层的字符缓存、编码转换、UI重绘都会引入不可控延迟。
Cmder:基于ConEmu,底层调用Windows API的
CreateFile打开COM口,实测i.MX6ULL串口波特率115200下,echo "hello" > COM3响应延迟稳定在8~12ms。但它不支持RTS/CTS硬件流控,遇到大块二进制数据(比如固件升级)容易溢出丢帧。我试过用它传512KB的bin文件,成功率只有63%。SecureCRT:老牌强项。它的串口驱动是自己写的,支持完整的RS-232信号线控制(DTR、DSR、RTS、CTS),在“Connection → Serial”设置里能精确到毫秒级调整“Read timeout”和“Write delay”。我给客户现场调试4G模组时,把Read timeout设为5ms,Write delay设为1ms,配合硬件流控,连续传输10MB固件零丢包。代价是配置项太深,新手找不到入口。
MobaXterm:免费版串口功能阉割严重——只支持基本收发,不支持信号线控制,也不允许调超时参数。但它的优势在于“即开即用”:插上USB转TTL线,点“Serial”按钮,自动列出所有COM口,选中就连,连上就能打字。适合快速验证硬件是否在线,不适合量产烧录。
XShell:串口支持是XShell 7才加的功能,且仅限付费版。它走的是Windows标准串口API,稳定性接近Cmder,但多了个“Buffer size”设置(默认4096字节)。我把它调到65536,配合i.MX6ULL的UART FIFO深度,大块数据传输成功率提到92%。不过要注意:XShell的串口窗口不支持鼠标滚轮缩放字体,调试时看寄存器值得凑近屏幕。
Termius:纯SSH工具,根本不支持串口。这点必须划重点——很多搜“Termius串口”的人,其实是被它的跨平台能力误导了。Termius的定位是“移动优先的SSH客户端”,串口不在它的技术栈里。
提示:串口调试选型铁律——先看硬件需求,再看软件能力。如果你的板子有硬件流控引脚(比如i.MX6ULL的UART1_RTS_B),SecureCRT是唯一稳妥选择;如果只是临时查log,MobaXterm最省心;如果追求开源和轻量,Cmder是平衡点。
2.2 场景二:SSH连接速度与会话保持——别让网络抖动毁掉你的凌晨三点
SSH不是“连上就行”。你连一台远在新加坡的编译服务器,git pull拉代码时网络抖动一下,连接断了,所有后台进程(nohup python train.py &)全挂;或者连VMware里的CentOS虚拟机,切个窗口再切回来,终端黑屏卡死——这些都不是服务器问题,是客户端的心跳机制和重连策略没配对。
SecureCRT:心跳(Keepalive)设置藏在“Connection → SSH2 → Authentication”页底部,叫“Send protocol keep-alives every X seconds”。默认是0(关闭),我一律改成30。更关键的是它的“Reconnect on disconnect”选项:勾选后,断开瞬间就弹出重连对话框,且自动记住上次密码(需在“Options → Global Options → General”里开启“Save passwords”)。实测在4G热点切换Wi-Fi时,平均重连耗时1.8秒,比手动重输快5倍。
MobaXterm:它的“SSH keep-alive”在“SSH settings”里,但逻辑不同——它发的是TCP层keepalive(
SO_KEEPALIVE),而非SSH协议层的SSH_MSG_GLOBAL_REQUEST。好处是更底层、更省电;坏处是某些防火墙会拦截TCP keepalive包。我遇到过阿里云ECS安全组默认丢弃这类包,导致MobaXterm看似连着,实际已断,ls命令卡住不动。解决方案是:在MobaXterm的SSH设置里,把“SSH keep-alive interval”设为60,并在服务器端/etc/ssh/sshd_config加两行:ClientAliveInterval 60 ClientAliveCountMax 3这样双向保活,断连感知从3分钟缩短到2分钟内。
XShell:XShell 7的“Connection → Keep Alive”页面,提供了“Send null packet to keep session alive”和“Send null packet every X seconds”两个开关。注意:“null packet”在这里指SSH协议的空请求,不是TCP包。我设为“Every 45 seconds”,实测在弱网环境下比SecureCRT少12%的意外断连。但它有个隐藏坑:如果勾选了“Enable X11 forwarding”,而服务器没装xauth,XShell会卡在连接阶段长达15秒才报错——这个错误不提示,只在状态栏闪一下“X11 auth failed”,新手根本看不到。
Termius:移动端的王者。iOS版支持后台运行时持续发送SSH keepalive(需在App设置里开启“Background Refresh”),安卓版则依赖系统省电策略,华为/小米手机常被杀后台。它的重连是“静默式”的:断开后自动尝试,成功后恢复光标位置,不弹窗不打断操作。我在地铁隧道里用Termius连公司服务器,进出隧道12次,只有2次需要手动点重连。
Cmder:它本身不处理SSH,靠内置的
ssh.exe(OpenSSH for Windows)。所以它的连接速度=系统OpenSSH的速度。Windows 11自带的OpenSSH 9.0p1,首次连接慢(要生成known_hosts),但后续极快。会话保持靠系统TCP参数,无法在Cmder里单独调。我一般在Cmder启动时执行:ssh -o ServerAliveInterval=30 -o ServerAliveCountMax=3 user@host把保活逻辑交给OpenSSH,更可控。
注意:所有工具的SSH保活,本质都是“客户端主动发包探路”。但探路包类型不同,效果差异巨大。SecureCRT和XShell发SSH协议包,兼容性最好;MobaXterm发TCP包,省资源但易被拦截;Termius和OpenSSH发SSH包,但移动端受系统限制。选型时,先确认你的服务器网络环境——如果走企业防火墙,选SecureCRT;如果直连云服务器,XShell或Termius更轻快。
2.3 场景三:多标签与多窗口管理——别让10个终端变成桌面灾难
一个典型工作流:标签1连开发板串口,标签2连编译服务器SSH,标签3连Docker宿主机,标签4开本地WSL2跑测试,标签5查Git日志……这时候,标签页切换是否顺滑、能否拖拽重组、是否支持分屏,直接决定你一天的烦躁指数。
MobaXterm:它的标签系统是“会话导向”的。每个标签对应一个预设的“Saved Session”,右键标签能“Duplicate session”(新开同配置标签)、“Move to new window”(拖出来成独立窗口)。最实用的是“Split terminal”功能:Ctrl+Shift+H水平分屏,Ctrl+Shift+V垂直分屏,分屏后每个区域可独立运行不同会话。我常用它一边
tail -f /var/log/syslog,一边htop看内存,不用切标签。但缺点是:分屏区域不能单独缩放字体,所有区域共用同一字体设置。XShell:XShell 7的“Tab Groups”是革命性的。你可以把串口、SSH、本地Shell拖进同一个Group,Group标题自定义(比如“i.MX6ULL调试组”),Group内标签支持Alt+1/2/3快速切换。更狠的是“Link all sessions in group”——勾选后,你在任一标签敲
cd /home/user/project,其他所有标签自动同步cd到同一路径。这对批量部署设备简直是神器。不过Group功能只在XShell 7付费版开放,免费版只能用基础标签。SecureCRT:它的“Tabbed Sessions”很传统,但胜在稳定。右键标签有“New Tab”、“Close Others”、“Rename Tab”,还支持“Tab Color”——我可以给生产环境标红、测试环境标绿、本地环境标蓝,一眼识别。但它没有分屏,也没有Group,10个标签挤在一起,找起来费眼。
Cmder:基于ConEmu,分屏是核心卖点。Ctrl+T新建标签,Ctrl+Shift+T新建分屏(自动等分),Ctrl+1/2/3切换分屏区域。分屏区域完全独立,可运行不同shell(PowerShell、WSL、CMD混用),字体大小也能单独调。我常把左屏开
vim,右屏开make,上下分屏开git status和docker ps。但ConEmu的渲染引擎在高DPI屏幕(如Surface Pro)上有轻微模糊,需在“Settings → Main → DPI Scaling”里强制设为“System”。Termius:移动端天然不支持多标签(iOS/iPadOS限制),但iPad版支持Slide Over和Split View,可以一边Termius一边Safari查文档。桌面版(macOS/Windows)的标签管理很基础,没有分屏,没有Group,但胜在极简——标签页宽度固定,不会因会话名过长而挤压,看着清爽。
实操心得:多任务效率,不取决于标签数量,而取决于“上下文切换成本”。MobaXterm用分屏降低切换频次,XShell用Group绑定上下文,SecureCRT用颜色降低识别成本,Cmder用分屏+多Shell提升并行度。如果你每天同时操作3台以上设备,XShell的Group功能值得付费;如果主要在笔记本上单任务推进,Cmder的分屏足够用。
2.4 场景四:中文显示与输入——从乱码到所见即所得的完整链路
中文乱码不是“字体没选对”这么简单。它是一条完整链路:终端声明的字符集(locale)→ 服务器返回的字节流 → 终端解码方式 → 字体渲染引擎 → 输入法编码 → 粘贴时的编码转换。漏掉一环,就是满屏。
MobaXterm中文设置:官网教程只说“Settings → Configuration → Display → Charset → UTF-8”,但这只是解码端。真正关键的是“SSH settings”里的“Remote charset”——这里必须设为“UTF-8”,否则服务器发来的UTF-8字节,MobaXterm按ISO-8859-1解,还是乱码。另外,“Copy/paste”页要勾选“Paste text using UTF-8 encoding”,否则从微信复制的中文粘贴过去会变乱码。我给客户的配置模板是:
- Display Charset: UTF-8
- Remote Charset: UTF-8
- Paste text using UTF-8 encoding: ✅
- Enable wide character support: ✅ (解决中文字符占位不准)
XShell中文字体:XShell的字体设置在“Appearance → Fonts”。很多人只改“Font name”,但忘了改“Character set”——必须选“Chinese GB2312”或“UTF-8”。更隐蔽的坑是“Font size”单位:它默认是“Point”,但中文显示清晰需要“Pixel”。我设为“12 Pixel”,比“10 Point”清晰3倍。还有个隐藏开关:“Terminal → Advanced → Use Unicode line drawing characters”,勾选后,
tree命令的分支线显示正常,不勾选就是一堆+和|。SecureCRT中文:它的“汉化”是伪需求。SecureCRT原生支持UTF-8,所谓“汉化版”只是改了界面语言,反而可能破坏SSH协议解析。正确做法是:
- “Options → Session Options → Terminal → Appearance”里,Font选“Consolas”,Charset选“UTF-8”;
- “Terminal → Emulation”里,Emulation选“Xterm”,因为Xterm标准明确支持UTF-8;
- 最重要一步:在连接后,执行
export LANG=zh_CN.UTF-8,让服务器也用UTF-8 locale输出。
这三步做完,ls列中文文件名、vim编辑中文注释,全部正常。
Termius中文设置:iOS版在“Settings → Appearance → Font”里选“SF Pro Text”,自动适配中文;桌面版在“Preferences → Terminal → Font Family”选“PingFang SC”(macOS)或“Microsoft YaHei”(Windows),并确保“Encoding”设为“UTF-8”。它没有“Remote charset”概念,因为所有通信默认UTF-8。
Cmder中文:Cmder的字体在“Settings → Main → Font”。我选“JetBrains Mono Nerd Font”,Size 12,Anti-aliasing开。但关键在启动脚本:在
vendor\init.bat末尾加一行:chcp 65001 >nulchcp 65001是Windows的UTF-8代码页,不加这行,CMD窗口默认GBK,git log --oneline里的中文作者名还是乱码。
常见误区:很多人以为“装个中文字体就完了”,其实终端的字符集声明(local charset)和服务器的locale必须严格匹配。MobaXterm的“Remote charset”和SecureCRT的
export LANG,就是这条链路上最关键的两个锚点。我建议所有用户,在新装终端后,第一件事不是连服务器,而是执行locale命令,确认输出里LANG=后面是UTF-8,不是zh_CN.GB2312。
2.5 场景五:密钥管理与安全登录——告别密码明文,但别掉进密钥陷阱
用密码登录SSH,就像用便利贴贴在显示器上写密码。但用密钥,又常遇到“Permission denied (publickey)”——不是密钥不对,是权限、路径、代理、格式全错了。
SecureCRT密钥登录:它的密钥向导(“Connection → SSH2 → Authentication → Public Key”)会自动生成密钥对,但默认保存在
C:\Users\XXX\Documents\VanDyke\Config\SSH2\,且私钥是.key格式(SecureCRT专有)。问题来了:这个私钥不能直接给ssh -i用,也不能被Git for Windows识别。我的做法是:在向导里选“OpenSSH”格式,密钥存到~/.ssh/id_rsa,然后在SecureCRT里“Use identity file”,指向这个路径。这样一套密钥,SecureCRT、Git Bash、WSL全通用。XShell密钥登录:XShell 7的“User Authentication”页,支持“Public Key”和“Keyboard Interactive”双因子。它能直接导入OpenSSH的
id_rsa,但有个坑:如果私钥有密码(passphrase),XShell会弹窗要你输,输错三次就锁死会话。解决方案是:在“Properties → Connection → SSH → Auth”里,勾选“Attempt authentication with password if public key authentication fails”,这样密钥错时自动切密码,不中断流程。MobaXterm密钥登录:它支持两种方式:1)在“SSH settings”里填“Private key file”,直接选
id_rsa;2)用内置的“SSH keys”管理器生成密钥。我推荐方式1,因为生成的密钥默认无密码,不安全。MobaXterm的密钥管理器生成的密钥,私钥文件权限是644(所有人可读),必须手动chmod 600 id_rsa,否则OpenSSH拒绝加载。Termius密钥登录:iOS版支持从iCloud或邮件导入
.pem或.ppk,但只认OpenSSH格式。它有个绝招:“Scan QR code”——在服务器上运行termius-keygen --qr(需Termius CLI),生成二维码,手机一扫,密钥自动导入,连密码都不用输。桌面版则支持“Import from OpenSSH config”,直接读~/.ssh/config,省去重复配置。Cmder密钥登录:靠OpenSSH,所以完全遵循OpenSSH规则。关键是
~/.ssh/config文件:Host myserver HostName 192.168.1.100 User admin IdentityFile ~/.ssh/id_rsa IdentitiesOnly yes然后在Cmder里
ssh myserver,自动匹配。IdentitiesOnly yes是防坑关键——它禁止OpenSSH自动尝试所有密钥,只用config里指定的,避免“Too many authentication failures”错误。
安全提醒:所有工具的密钥存储,都应避开默认路径。SecureCRT的
.key文件、MobaXterm的私钥,一旦被恶意程序扫描到,等于交出服务器钥匙。我的习惯是:密钥统一存在D:\keys\,权限设为仅当前用户读写,且定期用ssh-keygen -l -f id_rsa检查指纹是否被篡改。
2.6 场景六:日志记录与审计——不是为了留痕,而是为了快速回溯
调试时tail -f看日志,出问题了想查5分钟前发生了什么,结果发现没开日志——这种痛,每个工程师都懂。但日志不是“开个开关”就行,还得考虑:日志文件名是否带时间戳?是否按会话自动分类?是否支持滚动归档?是否能搜索关键词?
SecureCRT日志文件名设置:在“Log Session”设置里,“Log file name”支持变量,比如:
D:\logs\%Y-%M-%D_%H-%N-%S_%S-%H-%N-%S.log%Y年,%M月,%D日,%H时,%N分,%S秒,%S会话名。但注意:%S是会话名(Session Name),不是用户名。我习惯把会话名设为prod-db-20240520,日志名就自动是2024-05-20_14-30-22_prod-db-20240520.log,一目了然。更狠的是“Start log upon connect”,勾选后,每次连接自动开日志,断开自动关,不用手动点。MobaXterm日志:它的日志功能在“Tools → Start local terminal logging”。日志名固定为
MobaXterm_log_YYYYMMDD_HHMMSS.txt,不支持自定义。但优势是:它记录的是“本地终端所有输入输出”,包括你本地执行的ls、cd,不只是远程会话。这对复现本地环境问题很有用。日志默认存C:\Users\XXX\Documents\MobaXterm\logs\,我把它软链接到D盘,避免C盘爆满。XShell日志:XShell 7的“Log”页,支持“Log file name”变量,和SecureCRT类似,但多了“Log file rotation”——按大小(如10MB)或时间(如每天)自动切新文件。我设为“Rotate log file when it reaches 5MB”,配合“Append timestamp to filename”,日志永不丢失。还有一个隐藏功能:“Log only commands and output”,勾选后,日志里只记录你敲的命令和服务器返回,过滤掉所有提示符(
[user@host ~]$),纯文本更易grep。Termius日志:iOS版不支持日志(iOS沙盒限制),桌面版支持,但功能简陋——只能开/关,日志名固定,不支持旋转。所以Termius的日志,我只用它记关键操作,比如
sudo reboot,其他时候不开。Cmder日志:靠ConEmu的“Log”功能。在“Settings → Logging”里,设“Log file name”为
D:\logs\cmder_%Y%M%D_%H%N%S.log,勾选“Log all tabs”。但ConEmu日志是“原始字节流”,包含ANSI颜色码,用记事本打开是乱码。我用VS Code打开,装个“ANSI Colors”插件,颜色还原完美。
实操技巧:日志不是越多越好,而是要“可检索”。我所有工具的日志,都统一用
D:\logs\目录,并在Windows搜索里建索引。更重要的是,日志内容要结构化。比如在SecureCRT里,我连接后第一行总是:
echo "=== START $(date) ===" >> /tmp/session.log; tail -f /tmp/session.log这样日志里有明确起始标记,grep"START"就能定位每次会话。
2.7 场景七:跨平台一致性——一份配置,三端同步
你在家用MacBook连服务器,公司用Windows台式机,通勤路上用iPad——如果每台设备的终端配置(字体、快捷键、密钥、会话列表)都不一样,效率直接砍半。
Termius跨平台:这是它的核心竞争力。注册Termius账号,所有会话、密钥、设置自动同步。iOS版和桌面版UI几乎一致,快捷键也一样(Cmd/Ctrl+C/V,Cmd/Ctrl+T新建标签)。唯一区别是:iOS版不支持自定义快捷键,桌面版支持。我用Termius的“Sync”功能,把家里Mac的会话列表一键推送到公司Windows电脑,5分钟搞定。
MobaXterm跨平台:它只有Windows版。所谓“跨平台”是指它能连Linux/macOS服务器,不是指它自己能在多平台运行。所以MobaXterm的配置(
.mxt会话文件)只能在Windows间同步,无法和Mac/iPad互通。XShell跨平台:NetSarang公司出了XShell for Mac,但功能阉割严重——不支持X11转发,不支持密钥管理器,会话同步靠iCloud Drive手动拷贝
Sessions文件夹。我试过,Mac版连不上公司堡垒机,因为缺少“Kerberos authentication”模块。SecureCRT跨平台:VanDyke有SecureCRT for Mac,但价格是Windows版的2倍,且会话文件不通用。Windows的
.ini配置,Mac版读不了。所以SecureCRT的跨平台,本质是“买两份授权,分别配置”。Cmder跨平台:Cmder是Windows专属。但它的精神继承者是Tabby(原Terminus)——开源、跨平台(Win/macOS/Linux)、支持SSH/Serial/Shell。Tabby的配置是JSON文件,存在
~/.tabby/,用Git同步到GitHub私有库,三端git pull就能同步。我所有设备的Tabby,配置完全一致,连字体大小都是12px。
我的跨平台方案:主力用Termius(iOS/macOS/Windows),备份用Tabby(全平台开源)。Termius负责日常连接和移动办公,Tabby负责需要X11转发或深度定制的场景。两者配置分离,互不干扰。如果你不用iOS,那MobaXterm + Tabby是免费组合;如果预算充足,SecureCRT + SecureCRT for Mac是企业级选择。
3. 实操配置指南:7款工具的“开箱即用”模板
3.1 Cmder:极简主义者的Windows终端中枢
Cmder不是万能的,但它是Windows上最接近“开箱即用”的终端。它的价值不在于功能多,而在于把Windows最反人类的部分(CMD、PowerShell、WSL)揉成一个顺手的壳。
安装与初始化:
- 下载最新版Cmder Mini(约40MB),解压到
C:\tools\cmder; - 右键开始菜单 → “更多” → “文件资源管理器”,在地址栏输入
shell:startup,回车,把Cmder.exe快捷方式拖进去,实现开机自启; - 启动Cmder,按
Win+Alt+T打开设置,进入“Startup → Environment”,在“Environment variables”里添加:
这两行确保所有子shell(CMD/PowerShell/WSL)都用UTF-8和xterm终端类型。TERM=xterm-256color CHCP=65001
串口调试配置:
- 按
Win+Alt+P打开设置 → “Startup → Tasks”; - 点击右侧“+”新增Task,Name填
Serial i.MX6ULL,Commands填:
这里cmd /k "mode COM3: BAUD=115200 PARITY=N DATA=8 STOP=1 && cd /d C:\tools\cmder"COM3根据你的设备改,BAUD是波特率。保存后,按Win+Alt+T,在Tasks里选它,一键连串口。
SSH免密登录模板: 在C:\tools\cmder\config\user-profile.cmd末尾加:
:: 自动加载SSH密钥 if exist "%USERPROFILE%\.ssh\id_rsa" ( ssh-add "%USERPROFILE%\.ssh\id_rsa" >nul 2>&1 ) :: 别名简化 doskey ll=ls -la $* doskey ..=cd .. $*这样每次启动Cmder,自动加载密钥,ll代替ls -la,..代替cd ..。
注意:Cmder的
user-profile.cmd是全局生效的,所有Tab共享。不要在这里写cd命令,否则新Tab会继承上一个Tab的路径。
3.2 SecureCRT:企业级稳定性的终极选择
SecureCRT贵,但贵得有道理。它的稳定性、串口控制、日志审计,是其他工具难以企及的。配置的关键是“少而精”,避免陷入上百个选项的迷宫。
基础安全配置(必做):
- “Options → Global Options → General” → 勾选“Save passwords”和“Save session logs”;
- “Connection → SSH2 → Authentication” → “Send protocol keep-alives every”设为30;
- “Terminal → Emulation” → Emulation选“Xterm”,ANSI Color勾选;
- “Terminal → Appearance” → Font选“Consolas”,Size 12,Charset选“UTF-8”。
i.MX6ULL串口专用配置:
- 新建会话 → “Connection → Serial”;
- Port选
COM3(根据实际); - Speed设
115200; - Data bits:
8,Parity:None,Stop bits:1,Flow control:RTS/CTS; - “Advanced”页 → “Read timeout (ms)”设
5,“Write delay (ms)”设1; - “Session Options → Terminal → Keyboard” → “Backspace key sends”选
Ctrl-H(匹配Linux习惯)。
日志自动化模板: 在“Log Session”页:
- Log file name:
D:\logs\%Y-%M-%D_%H-%N-%S_%S.log; - Log file type:
ASCII log file; - 勾选“Start log upon connect”和“Flush log file after each write”;
- “Log file options” → “Limit log file size to”设
10000000(10MB)。
实测心得:SecureCRT的“Flush log file after each write”是关键。不勾选时,日志是缓冲写入,断电或崩溃会丢最后几KB。勾选后,每行日志实时落盘,牺牲一点性能,换来100%可靠性。
3.3 MobaXterm:免费党的全能瑞士军刀
MobaXterm免费版功能已经远超多数商用工具。它的哲学是“把所有功能塞进一个界面”,配置的核心是“删减”——关掉不用的功能,让界面清爽。
中文显示终极配置:
- “Settings → Configuration → Display” → Charset选
UTF-8; - “SSH settings” → Remote charset选
UTF-8; - “Copy/paste” → 勾选“Paste text using UTF-8 encoding”和“Enable wide character support”;
- “Advanced SSH settings” → 勾选“Use X11 forwarding”(即使不用X11,勾选后SSH连接更稳)。
SSH会话快速创建:
- 点“SSH”按钮 → 填Host、Port、Username;
- “Advanced SSH settings” → “Use private key file”选
id_rsa; - “Browser your home directory” → 勾选,这样登录后自动
cd ~; - 点“Save session”,Name填
prod-server-2024,下次点它就连。
分屏调试工作流:
- 连上服务器后,按
Ctrl+Shift+V垂直分屏; - 左屏执行
tail -f /var/log/nginx/error.log; - 右屏执行
htop; - 按
Ctrl+Shift+T在右屏再开一个分屏,执行df -h; - 所有分屏共享同一SSH会话,
Ctrl+C停止tail,不影响其他分屏。
避坑指南:MobaXterm的“X11 forwarding”如果服务器没装xauth,会卡住。解决方案是:在“Advanced SSH settings”里,把“X11 display location”从
localhost:10.0改成127.0.0.1:10.0,绕过localhost解析问题。
3.4 XShell:国产之光的效率革命
XShell 7是国产终端工具的巅峰。它的Group、分屏、日志旋转,都是为真实工作流设计的。配置的精髓是“用好Group”,而不是堆砌单个会话。
Group创建与绑定:
- 新建会话A(连开发板),会话B(连编译服务器),会话C(连Docker宿主机);
- 拖动A、B、C到一起,松手,自动创建Group,命名为
Embedded-Dev-2024; - 右键Group → “Properties” → “Connection” → 勾选“Link all sessions in group”;
- 在Group内任一标签执行
cd /workspace/firmware,所有标签同步cd。
字体与显示优化:
- “Appearance → Fonts” → Font name选
JetBrains Mono,Size选12 Pixel,Character set选UTF-8; - “Terminal → Advanced” → 勾选“Use Unicode line drawing characters”和“Enable bracketed paste mode”;
- “Terminal → Mouse” → “Mouse wheel scrolls”设为
10 lines(默认3行太慢)。
日志与审计配置