如果你还在靠双击桌面上的 cmd 图标干活或者开了一堆 PowerShell 窗口来回切换那我强烈建议你花几分钟看看这篇。Windows TerminalWindows 终端现在已经是非常成熟的版本了多标签、分屏、自定义配置这些功能做得相当顺手而且完全免费、微软官方出品。这篇文章我会从为什么值得换、怎么装到最新版、怎么把多标签真正用起来再到我实际使用中踩过的一些坑和配置心得一次性讲清楚。适合所有用 Windows 做开发、运维、或者日常跟命令行打交道的人。1. 为什么Windows终端值得成为你的默认命令行工具1.1 传统cmd和PowerShell窗口的痛点在Windows Terminal出现之前Windows用户面对的命令行体验其实是比较割裂的。cmd窗口是上世纪风格的黑色边框字体渲染在全高清屏幕下经常发虚缩放窗口时内容不会自动换行复制粘贴还得右键调出菜单选标记体验相当原始。PowerShell窗口虽然稍微好一点但本质上还是同一个控制台宿主多开几个窗口之后任务栏就会堆满相似的图标找起来特别费劲。我过去给服务器批量跑脚本的时候经常同时开四五个窗口每个窗口干不同的事。问题是窗口标题长得都差不多全靠自己记“哪个窗口在跑哪个任务”。有时候手一快关错窗口脚本跑到一半断了回头还得查日志才知道出了问题。这种体验在多任务并行时特别折磨人。1.2 Windows Terminal带来了什么改变Windows Terminal从2019年首次发布到现在已经迭代得非常成熟了。它本质上是微软重新写的一个现代化的终端宿主程序不再依赖老的conhost架构而是基于DirectWrite做字体渲染基于GPU做加速显示。最直观的感受就是文字清晰了滚动流畅了颜色也更真实了。当然对于大多数人来说最核心的卖点还是多标签。它可以像浏览器一样在一个窗口里开多个标签页每个标签页里可以运行不同的shell——比如一个标签跑cmd一个标签跑PowerShell一个标签跑WSL里的Ubuntu甚至一个标签直接连到远程SSH会话。标签之间可以鼠标点击切换也可以用快捷键还可以开启分屏让两个会话同时显示在同一个标签页里。而且它支持完整的配置文件和快捷键自定义主题配色、字体、启动目录这些全部都可以调整。配置文件是JSON格式懂一点配置就能改出很顺手的终端环境。1.3 适合哪些场景和人群如果你是开发者那Windows Terminal基本是必装的尤其是配合WSL使用的时候体验比直接在VS Code终端里操作还要舒服。如果你是运维工程师经常需要SSH到各种服务器Windows Terminal原生支持SSH连接而且可以保存配置不用再单独装一个SSH客户端。如果你日常只是用命令行执行一些简单的命令比如ping、ipconfig、清理磁盘缓存之类Windows Terminal同样能让操作过程舒服不少。这篇博文针对的是最新版本的Windows Terminal我会把安装方式、多标签的完整玩法、配置调优、常见问题全部讲透。已经装过旧版本的同学也可以直接跳到第3章看配置部分。2. 三种方式安装Windows Terminal最新版2.1 Microsoft Store安装最省事的方式对绝大多数用户来说从Microsoft Store安装Windows Terminal是最简单的路径。打开开始菜单搜索“Microsoft Store”打开后搜“Windows Terminal”认准发布者是微软官方的那一个点击获取按钮就会自动下载并安装。这个方式最大的优点是自动更新。Windows Terminal现在基本保持在每个月一个版本的更新节奏Store版本会在后台静默更新你不用操心版本是否过期。而且它会装上三种运行环境分支一个是稳定版Windows Terminal一个是预览版Windows Terminal Preview一个是Canary版。建议装稳定版就够了想尝鲜的可以装Preview。有一点需要注意如果你的Windows版本比较老比如还在用Windows 10的早期版本Store里可能会搜不到Windows Terminal或者只能搜到旧版。这种情况下建议用下面说的GitHub方式安装。2.2 GitHub Releases安装获取最新的便携版本微软在GitHub上开源了Windows Terminal项目仓库地址叫 microsoft/terminal。在Releases页面可以看到所有发布过的版本。最新稳定版一般以“v1.x.x”命名下面会提供几个安装文件常见的有.msixbundle这是商店版的安装包双击可以安装但需要你的系统支持App Installer.zip这是便携压缩包解压就能用适合不想安装或者做绿色工具包的情况.exe安装器部分版本提供我的经验是如果你需要离线安装或者公司电脑禁止了Microsoft Store访问权限就走GitHub Releases下载msixbundle文件然后用PowerShell的Add-AppxPackage命令安装。命令大概是Add-AppxPackage -Path C:\path\to\Microsoft.WindowsTerminal_版本号_8wekyb3d8bbwe.msixbundle不过这个命令要先安装好依赖的VCLibs框架包不然会报依赖错误。GitHub Release页面里通常也会附带VCLibs的下载链接就是名字带“Framework”的那几个文件先装依赖再装主程序就不会报错了。2.3 winget命令安装适合命令行玩家如果你平时习惯用命令行管理软件那winget是最快的。打开Windows Terminal后直接运行winget install --id Microsoft.WindowsTerminal -e --source winget这条命令会自动拉取最新稳定版并安装。要装预览版就把id换成Microsoft.WindowsTerminal.Preview。我自己的机器重装系统后就是直接用winget装回来的省去了去商店搜索的步骤。安装完成后启动Windows Terminal的第一印象就是界面很清爽。默认会打开PowerShell的标签页。如果你装过WSL它还会自动识别到Ubuntu等发行版并自动生成对应的profile配置下拉菜单里就能直接选。提示如果打开Windows Terminal后发现中文显示为方块一般不是终端的问题而是系统字体里缺少中文字形。可以在配置里把字体设为“Cascadia Mono”或者“Microsoft YaHei UI”中文显示就正常了。3. 多标签功能的核心操作从入门到熟练3.1 新建标签页与窗口管理的快捷键体系Windows Terminal的多标签设计与其说是模仿浏览器不如说是把终端的会话管理做得更工程化了。最基本的操作就是按CtrlShiftT新建一个默认配置文件的标签页。如果你装了多个shell比如PowerShell、cmd、UbuntuWSL、Git Bash等可以按CtrlShift数字键直接切换对应的profile标签页。我自己最常用的快捷键是CtrlTab和CtrlShiftTab循环切换标签页和浏览器的操作习惯完全一致零学习成本。关闭标签页是CtrlShiftW也可以直接鼠标点击标签页上的叉号。如果你想在不打开新标签页的情况下开一个全新的终端窗口快捷键是CtrlShiftN。这个在需要把某个任务单独拖出来对比的时候很实用。为了让你快速上手我把最常用的一组快捷键整理成了表格功能快捷键新建默认标签页CtrlShiftT新建指定profile标签页CtrlShift数字键关闭当前标签页CtrlShiftW切换下一个/上一个标签页CtrlTab / CtrlShiftTab打开新窗口CtrlShiftN复制/粘贴CtrlC / CtrlV需开启查找CtrlShiftF全屏F11打开设置界面Ctrl逗号3.2 分屏功能一个标签页里同时跑多个会话如果说标签页是横向扩展那分屏就是纵向扩展。Windows Terminal支持在一个标签页里把窗口拆分成多个窗格最多可以拆成任意布局。默认快捷键是AltShiftD将当前窗格拆分成上下两个AltShift加号是左右拆分。拆分后每个窗格都是独立的会话可以同时运行不同的命令。这个功能对我这种需要频繁对比输出的人帮助特别大。比如我跑一个Python脚本需要起一个本地服务同时在旁边的窗格里用curl测试端口再开一个窗格tail日志文件三个窗格互相独立又能同时看到输出比来回切换标签页高效太多了。分屏窗格之间的焦点切换快捷键是Alt方向键。窗格的大小可以拖动分隔条调整也可以按AltShift方向键调整当前窗格尺寸。不想用快捷键的话在标签页上右键也能找到拆分窗格的选项适合偶尔用一次的场景。3.3 标签页的拖拽组合与会话恢复Windows Terminal支持把标签页直接拖拽出来变成独立窗口也可以从一个窗口拖到另一个窗口合并进去操作逻辑和浏览器类似。这个功能在临时需要对比多个会话输出时特别有用直接把相关标签拖成单独窗口并排看看完了再拖回来。会话恢复这个功能我要重点提一下。新版Windows Terminal可以在启动时恢复上一次关闭时还保留的标签页和窗格布局。开启方法是进入设置找到“启动”选项卡在“启动时”下拉框里选“从上次会话恢复”。这个功能对我这种常年开着十几个标签的人就是救星——以前电脑重启后要重新手动开一堆会话现在它自己就回来了。不过需要注意恢复的只是会话记录和当前目录不会恢复已经运行的命令进程。比如你关掉窗口前正在跑一个npm start恢复后并不会自动重新执行这条命令但是会打开一个相同目录的标签页方便你手动重新启动。4. 深入配置Windows Terminal让多标签真正贴合你的工作流4.1 配置文件结构解析settings.json里到底能改什么Windows Terminal的配置核心是一个JSON文件叫settings.json。打开方式是点击窗口标题栏右侧的下拉箭头选择“设置”然后在设置界面左下角点“打开JSON文件”。也可以直接在窗口里按Ctrl逗号打开设置界面再切到JSON视图。这个文件分成几个顶层结构profiles定义所有可用的shell会话配置包括PowerShell、cmd、WSL、SSH等actions定义快捷键和命令面板里的动作schemes定义配色主题其他全局配置包括默认字体、默认背景透明度、启动行为等很多第一次接触的人会被这个JSON文件吓到其实不必。Windows Terminal的JSON配置有详尽的注释支持虽然标准JSON不允许注释但微软专门做了处理允许使用//开头的注释而且设置界面里的每一个改动都会自动同步到JSON文件里。反过来手写JSON也能生效改完按CtrlS保存整个终端会热重载界面立刻更新不需要重启。4.2 多profile管理把常用任务变成可一键打开的标签页多标签的优势只有在profile配置得当的时候才能完全发挥出来。我平时维护了好几个自定义profile比如一个Ubuntu(WSL)的默认启动在项目目录一个PowerShell配置成启动后自动进入某个虚拟环境还有一个专门用于SSH连接远程服务器的。创建profile的方法是打开settings.json在profiles列表里复制一个已有配置修改name、commandline、startingDirectory这三个字段。比如我想加一个“Ubuntu-Project”的profile启动目录自动定位到项目文件夹配置长这样{ name: Ubuntu-Project, commandline: wsl.exe -d Ubuntu, startingDirectory: //wsl$/Ubuntu/home/me/projects, icon: ms-appx:///ProfileIcons/{9acd945a-c110-4f3e-9b7a-8c2a93c4a1d3}.png }配置好之后在下拉菜单里就会出现“Ubuntu-Project”的入口点击即可打开一个新标签页自动进入指定目录。用CtrlShift数字键还可以给它绑定固定快捷键实现“一键打开特定环境”效率提升很明显。4.3 主题与配色方案兼顾美观和长时间使用的舒适度配色方案这个东西看着是锦上添花但做开发的话长时间盯着终端配色是否舒服直接影响眼睛疲劳程度。Windows Terminal内置了多种配色方案包括经典的One Half Dark、Solarized、Tango等在设置界面的“配色方案”里可以直接切换。如果你有更个性化的需求可以自己写配色方案。一个方案的本质就是定义16种ANSI颜色和前景背景色。其中前8种是标准色后8种是亮色分别对应不同的语法高亮场景。我个人的习惯是背景色用深灰蓝而不是纯黑因为纯黑背景在暗光环境下看久了对比度太高文字容易刺眼。字体我推荐Cascadia Code这是微软专门为Windows Terminal设计的等宽字体支持连字特性箭头、比较运算符这些会显示成更美观的连体形式。4.4 自定义快捷键按自己的肌肉记忆绑键Windows Terminal默认的快捷键已经覆盖了常见操作但每个人的习惯不同总有一些操作希望可以自定义。比如我喜欢用CtrlShiftS做一个“SSH快速连接”的启动动作而不是用它来保存文件之类的默认行为。这就需要改actions配置。绑定快捷键的格式是在actions数组里加一个对象{ command: { action: duplicateTab }, keys: ctrlshiftd }这个示例是给“复制当前标签页”绑定快捷键CtrlShiftD。action的类型非常多包括newTab、splitPane、closePane、nextTab、prevTab、toggleFullscreen等还有下拉命令面板的调出动作。绑完后在配置界面里也能看到完整的快捷键列表随时可以反查。有一点要注意Windows Terminal的快捷键优先级是先看全局配置再看当前面板所在profile的单独配置。如果发现某个快捷键不生效优先检查是不是与其他软件冲突了比如某些截图类软件会全局占用CtrlShiftS这种情况下终端里设置了也会被外部软件拦截。5. 多标签实战用Windows终端把日常开发效率拉满5.1 配合WSL使用标签页里同时跑Windows命令和Linux命令Windows Terminal和WSL是绝配这是目前 Windows 上做开发最舒服的命令行组合。WSLWindows Subsystem for Linux可以在Windows里运行一个原生的Linux子系统但如果没有一个趁手的终端宿主用它时就得开单独的窗口体验很分裂。Windows Terminal把Windows命令和Linux命令统一到一个界面里切换成本几乎为零。我日常是这样组织的第一个标签页跑WSL里的Ubuntu用来执行git命令、vim编辑、gcc编译这些Linux生态工具第二个标签页跑Windows的PowerShell用来管理Windows服务、操作注册表、执行winget安装包第三个标签页跑cmd用来做快速网络排查或者调用一些老的批处理命令。三个标签页都在同一个窗口里想切换就按CtrlTab想同时看输出就分屏。WSL的新版本是WSLg也就是WSL里可以运行Linux的GUI程序。虽然这在Windows Terminal里感知不明显但配合起来你在WSL里启动的程序如果输出图形界面Windows会自动弹窗显示。Windows Terminal作为一个终端入口把这种跨系统的体验串起来了。5.2 SSH远端会话管理多标签替代各种SSH客户端很多人并不知道Windows Terminal最新版内置了SSH会话管理。不用装额外的JuiceSSH、Xshell或者FinalShell直接在设置界面添加一个新的profilecommandline填ssh userhost即可。保存后每次点击这个profile就会自动打开SSH连接输入密码或密钥就能登录。我这里分享一个更高级的用法用SSH配置文件来扩展。Windows Terminal里的SSH profile本质上执行的还是OpenSSH客户端命令所以走得是系统的~/.ssh/config配置。你可以把常用的主机信息维护在ssh config文件里然后在Windows Terminal里为每个主机单独建一个profile起一个容易认的名字比如“生产环境-web01”“测试环境-db”图标用一个自定义图标区分环境类型。多标签在这里的好处非常明显。以前管理几台服务器要开好几个SSH客户端窗口现在一个终端窗口里开多个标签每个标签连着一台服务器。而且Windows Terminal支持鼠标选中自动复制、右键粘贴这对在服务器之间复制配置文件太友好——不用像以前那样先复制到本机再粘贴到另一端。5.3 本地开发工作台一个窗口组织起服务、编译和日志做本地开发时我通常需要同时运行后端服务、前端构建工具和数据库。这些任务如果全堆在一个窗口里输出会交织在一起根本没法看。以前的做法是开三个cmd窗口轮流关注现在我用Windows Terminal的分屏功能固定三块区域左边窗格跑后端服务比如Uvicorn或者Spring Boot观察启动日志和请求日志右上角跑前端构建watcher比如Vite或Webpack的dev server关注的编译报错都在这里右下角跑一个空的shell用来执行临时命令比如git操作、数据库查询、文件操作等这套布局启动后基本可以一屏看全所有关键信息而且每个窗格都可以独立滚动查看历史输出不会互相干扰。配置这种布局不需要手工拖拽Windows Terminal支持在启动时执行特定命令并自动拆分窗格用命令行参数就能实现wt -p Ubuntu-Project ; split-pane -p PowerShell ; split-pane -p cmd这里的分号表示依次执行split-pane在第一个标签页里拆分出新的窗格。把这条命令做成一个快捷方式或者alias以后一键就能恢复整套工作环境。另外新版Windows Terminal的命令面板按CtrlShiftP调出里可以搜索所有操作和profile包括自定义命令。比如我想“新建一个Ubuntu标签并启动到指定目录”直接在命令面板里敲Ubuntu就能搜到对应的启动动作。命令面板本身也可以绑定自定义命令完全可以按自己的需要构建一套命令行操作中心。6. 装好之后容易踩的坑问题排查与解决思路6.1 环境变量不生效终端重启才认识新path这是比较常见的问题。你在Windows系统设置里改了环境变量Path然后回头打开cmd验证发现还是旧值。原因很简单环境变量是在进程启动时读取的已经打开的终端进程不会感知到系统设置的更新。所以任何时候修改了系统环境变量都建议完全关闭Windows Terminal再重新打开而不是只关掉一个标签页。如果急着验证也可以在新标签页里手动读取一下环境变量$env:Path顺便说一句Windows Terminal里新建标签页默认是继承父进程环境的。如果你在一个终端里用命令设置了临时环境变量然后在这个终端里新建标签页新标签页会带上这个临时环境变量这在调试时挺有用但也容易造成幻觉——以为是系统级的其实是临时的。我碰到过几次这种问题排查了很久才意识到是父子进程环境继承导致的。6.2 新版启动报错模块不兼容或依赖缺失如果你的系统版本比较旧或者用的是精简版系统安装新版Windows Terminal后可能遇到启动白屏、闪退、报0x80070005之类的问题。这类问题大多是用于打包的VCLibs和Windows App Runtime版本不对导致的。解决思路是先检查系统版本。Windows Terminal 1.18之后要求Windows 10 1809及以上版本。如果你的系统是LTSC版本企业长期服务版商店组件可能被裁掉Store安装会不支持这时用winget安装也会报错。个人经验是直接下载zip便携版最省事解压后运行WindowsTerminal.exe就能用完全绕开了AppX打包的各种依赖问题。还有一个情况是装了第三方美化工具导致的问题比如旧版TranslucentTB任务栏透明工具可能跟Windows Terminal的acrylic背景支持冲突。如果终端的毛玻璃背景显示异常尝试关掉这些工具或者在配置里把背景效果改成“无效”或“透明”而不是acrylic。6.3 中文乱码和字体渲染问题Windows Terminal对UTF-8的支持已经很好默认的Cascadia Mono字体也包含中文字形所以大多数情况下中文显示正常。但我遇到过两个乱码场景一个是用cmd跑老的GBK编码程序输出中文变成乱码另一个是用WSL跑一些输出UTF-8中文的程序但Windows区域设置没有开启Beta版UTF-8支持导致显示异常。针对第一种情况可以在cmd里先执行chcp 65001切换到UTF-8代码页或者反过来chcp 936切换到GBK看程序的输出编码来决定。针对第二种情况可以在设置里给对应的profile加上环境变量让它强制使用UTF-8environment: { LANG: zh_CN.UTF-8 }字体渲染方面如果觉得文字发虚首先检查是不是用了系统缩放而非终端自身的缩放。Windows Terminal的设置里可以独立设置字体大小和缩放比例不用去改Windows全局缩放。6.4 多标签用多了内存占用大吗有时候我们会本能地觉得开了一堆标签页内存一定爆炸。但实际上Windows Terminal在内存方面优化得还是不错的。每个窗格本质上是一个独立的shell进程占用的是shell本身的资源终端宿主本身的内存开销并不高。10个标签页大概额外增加几十MB的内存跟浏览器的多标签机制完全不是一个量级。真正吃内存的是shell进程本身比如WSL里跑了大型编译任务占的是WSL虚拟机的内存这部分跟终端无关。如果你发现终端打字明显卡顿、滚动不跟手绝大部分情况是渲染回退到了软件模式。检查一下显卡驱动是否是老版本以及Windows Terminal是否开启了GPU加速默认是开启的。可以在设置界面的“渲染”选项卡里把“加速器”设成“硬件”试试。6.5 键盘快捷键冲突排查Windows Terminal默认快捷键里CtrlShiftF是查找但有些输入法会占用这个组合键作为中英文切换。冲突的结果是你在终端里按CtrlShiftF时输入法切换了但终端没反应。出现这种情况建议先想想自己装了哪些全局热键软件比如截图、录屏、翻译软件。Windows Terminal本身不提供全局热键注册它的快捷键只在窗口处于焦点时生效所以外部软件占用才是最常见的冲突源。解决方案就是两者取其一要么在外部软件里改热键要么在Windows Terminal的actions配置里把这个动作的keys改掉。7. 进阶玩法把Windows终端变成你的个人生产工具到这里安装和基础配置都已经讲完了。最后分享两个我实际用了很久的进阶思路算是给有折腾精神的同学一个延伸方向。第一个是配合PowerShell自带的自动补全和语法高亮。Windows Terminal本身只是终端宿主但配合PSReadLine模块的最新版本PowerShell里会出现类似Linux zsh的语法高亮和智能提示效果。安装好之后打命令时历史命令会自动模糊匹配输入错误命令会显示红色高亮这个组合让Windows下的命令行体验直接上升了一个档次。第二个是给常用的SSH会话加上自定义图标颜色。Windows Terminal的每个profile可以设置独立的背景色和图标我用这个特性区分不同环境生产环境的标签页背景是淡红色测试环境是淡绿色本地开发是默认色。这样即使开了一堆标签扫一眼颜色就知道现在操作的是哪台机器有效避免在错误环境执行命令的风险。我说实话从Windows Terminal正式版发布到现在我已经把机器上所有旧终端工具都卸载了。它不仅解决了我多年被多窗口切换折磨的问题还在各种细节上提供了很多让人感觉“微软终于懂了”的体验。如果你刚接触终端直接用Windows Terminal起步就好少走弯路如果你已经在用CMD或PowerShell窗口建议花一个下午把这篇里的配置过一遍基本能改变你未来的工作方式。