嵌入式与Linux终端工具选型指南:串口调试、SSH、中文显示实战
2026/9/15 20:19:53 网站建设 项目流程

1. 为什么终端工具这件事,值得你花一整个下午重新梳理?

我做嵌入式开发和Linux运维这十多年,换过至少17个工位,重装过43次系统,但有一样东西我永远会第一时间装好——不是IDE,不是浏览器,而是终端工具。它不像编辑器那样天天炫技,也不像Git那样被写进每份简历,但它才是你和服务器、开发板、容器、远程设备之间最真实、最直接的“神经末梢”。你敲下的每一行lssshmaketail -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 statusdocker 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协议解析。正确做法是:

    1. “Options → Session Options → Terminal → Appearance”里,Font选“Consolas”,Charset选“UTF-8”;
    2. “Terminal → Emulation”里,Emulation选“Xterm”,因为Xterm标准明确支持UTF-8;
    3. 最重要一步:在连接后,执行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 >nul

    chcp 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,不支持自定义。但优势是:它记录的是“本地终端所有输入输出”,包括你本地执行的lscd,不只是远程会话。这对复现本地环境问题很有用。日志默认存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)揉成一个顺手的壳。

安装与初始化

  1. 下载最新版Cmder Mini(约40MB),解压到C:\tools\cmder
  2. 右键开始菜单 → “更多” → “文件资源管理器”,在地址栏输入shell:startup,回车,把Cmder.exe快捷方式拖进去,实现开机自启;
  3. 启动Cmder,按Win+Alt+T打开设置,进入“Startup → Environment”,在“Environment variables”里添加:
    TERM=xterm-256color CHCP=65001
    这两行确保所有子shell(CMD/PowerShell/WSL)都用UTF-8和xterm终端类型。

串口调试配置

  • 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贵,但贵得有道理。它的稳定性、串口控制、日志审计,是其他工具难以企及的。配置的关键是“少而精”,避免陷入上百个选项的迷宫。

基础安全配置(必做)

  1. “Options → Global Options → General” → 勾选“Save passwords”和“Save session logs”;
  2. “Connection → SSH2 → Authentication” → “Send protocol keep-alives every”设为30;
  3. “Terminal → Emulation” → Emulation选“Xterm”,ANSI Color勾选;
  4. “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免费版功能已经远超多数商用工具。它的哲学是“把所有功能塞进一个界面”,配置的核心是“删减”——关掉不用的功能,让界面清爽。

中文显示终极配置

  1. “Settings → Configuration → Display” → Charset选UTF-8
  2. “SSH settings” → Remote charset选UTF-8
  3. “Copy/paste” → 勾选“Paste text using UTF-8 encoding”和“Enable wide character support”;
  4. “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,下次点它就连。

分屏调试工作流

  1. 连上服务器后,按Ctrl+Shift+V垂直分屏;
  2. 左屏执行tail -f /var/log/nginx/error.log
  3. 右屏执行htop
  4. Ctrl+Shift+T在右屏再开一个分屏,执行df -h
  5. 所有分屏共享同一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创建与绑定

  1. 新建会话A(连开发板),会话B(连编译服务器),会话C(连Docker宿主机);
  2. 拖动A、B、C到一起,松手,自动创建Group,命名为Embedded-Dev-2024
  3. 右键Group → “Properties” → “Connection” → 勾选“Link all sessions in group”;
  4. 在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行太慢)。

日志与审计配置

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询