很多朋友第一次认真接触 Windows 命令行,都是被同一个问题逼到这里的:为什么我明明输入了 python,黑窗口却提示“python”不是内部或外部命令?为什么别人截图里的终端有花哨的提示符、漂亮的配色,还能一边开 Ubuntu 环境一边开 PowerShell?这里涉及四个名字高度相似的东西——CMD、PowerShell、WSL、Windows Terminal。它们四个名字经常混着出现,但实际上是完全不同层面的东西。这篇文章适合刚入门的同学,也适合已经用了一段时间但一直没搞清边界的人。我会把这四者的定位、区别、选型讲明白,再给你一套可以直接照抄的 Windows Terminal 美化方案,从配色、字体到提示符主题一次配到位。
1. 先把名字分清:四个“命令行概念”的定位
1.1 CMD:Windows 的古老传家宝
CMD 全名是命令提示符(Command Prompt),对应的是 cmd.exe 这个进程。它最早可以追溯到 DOS 时代,后来 Windows NT 内核里一直保留了它。它的本质是一个面向文本的命令解释器:你敲一行命令,它按照语法去解析,调用对应的程序,把结果以文本形式打印在屏幕上。就这么简单。
CMD 能做的日常操作其实不少:dir、cd、copy、del、ipconfig、netstat -ano、taskkill /F /PID、ping、net use 等等。批量处理靠 .bat 或 .cmd 脚本。我直到现在还在用 CMD 处理一些快速网络排查,比如查端口、杀进程:
netstat -ano | findstr :8080 taskkill /PID 12345 /F一条命令就够,不用开任务管理器点半天。但 CMD 的短板也很明显。第一,它的脚本语言非常简陋,没有函数、没有对象、没有变量作用域,写复杂逻辑几乎是在自虐;第二,所有输出都是纯文本,你很难对输出做结构化处理——比如你想拿到所有进程的 CPU 占用然后排序,CMD 做起来非常痛苦;第三,对 Unicode 支持很差,中文环境下经常出现乱码,这也是很多人被“为什么 ping 返回的是乱码”劝退的原因。
还有一个历史包袱:CMD 的很多行为是当年为了兼容 DOS 留下的,各种转义规则、路径解析规则都很反直觉。比如 %VAR% 展开机制、延迟变量、for /f 嵌套引号,这些东西不是设计出来的,是历史层叠出来的。我的建议是:CMD 不是不能用,而是要把它当成“应急工具箱”。日常交互式折腾、写复杂脚本,请往下看 PowerShell。
1.2 PowerShell:面向对象的命令行
如果说 CMD 是文本搬运工,那 PowerShell 就是对象加工厂。它是微软 2006 年开始推出的新一代 shell,彻底换了一个底层的设计思路。PowerShell 的关键创新是:命令的输出不再是“文本”,而是“对象”。你执行 Get-Process,返回的不是一堆字符串,而是一组 Process 对象,每个对象有 Id、CPU、Memory、ProcessName 等属性。你想从中筛选、排序、计算,直接对对象操作:
Get-Process | Where-Object { $_.WorkingSet64 -gt 200MB } | Sort-Object CPU -Descending这在 CMD 里简直没法想象。管道的概念也从“文本流”变成了“对象流”,一个 cmdlet 吐出来的对象,下一个 cmdlet 直接接收,不需要再用 findstr 去匹配文本、再用奇怪的 for 循环去拆字段。PowerShell 的 cmdlet 命名遵循“动词-名词”结构:Get-Process、Set-Location、Test-NetConnection、Remove-Item。背命令比 CMD 容易得多,因为规律性极强。
还有几个对日常特别有用的点。可以直接调用 .NET 类库,写复杂逻辑时觉得内置 cmdlet 不够用,直接 [System.IO.File]::ReadAllText() 都可以;有完整的脚本语言能力,函数、类、异常处理、模块,可以写正式的工具;自带强大的帮助系统,Get-Help、Get-Command、Get-Member 几乎是边用边查的脚手架。
但 PowerShell 也有学习曲线。主要的坎是它的语法比较“重”,各种符号看着吓人:$、、{}、管道后面接函数。我见过不少 CMD 老手第一次被 [$.Name] 吓得头疼。其实适应两周就好了,关键是理解“一个 cmdlet 吃进对象、吐出对象”的心智模型。另外要区分一个容易混淆的点:Windows 自带的 PowerShell 5.1(Windows PowerShell,基于 .NET Framework,只能在 Windows 上跑)和跨平台的 PowerShell 7.x(基于 .NET,可以装在 Linux/macOS 上)。平时命令行里输 powershell 启动的是 5.1,输 pwsh 启动的是 7.x。Windows PowerShell 5.1 已经进入维护期,新功能不更新了,我个人建议新环境直接用 PowerShell 7。
1.3 WSL:藏在 Windows 里的 Linux
WSL 全称是 Windows Subsystem for Linux,它解决的问题很现实:很多开发工具、脚本、服务,在 Linux 生态里才是第一公民。Docker 的爽快体验、Node/Python 的很多发行包、各种编译链,在 Windows 原生环境里要么装起来费劲,要么行为怪异。以前大家被迫装双系统或者用虚拟机,WSL 让 Windows 用户不用离开系统,就能跑一个原生的 Linux 用户态环境。
WSL1 和 WSL2 是两代完全不同的实现。WSL1 是一个系统调用的转换层,把 Linux 的系统调用翻译成 Windows 的系统调用,启动快、跟 Windows 文件系统交互也快,但兼容性差——很多依赖 Linux 内核特性的程序跑不了。WSL2 则把真正的 Linux 内核塞进了一个轻量级虚拟机里,兼容性大幅提升,Docker 也终于能用 WSL2 后端跑得舒服了。代价是比较占内存、虚拟磁盘文件 VHDX 会越来越大。
安装 WSL 现在非常无脑,管理员身份运行终端,执行:
wsl --install它会自动启用相关功能、下载默认发行版(默认 Ubuntu)。装完重启,按提示创建 Linux 用户名和密码就行。如果下载特别慢,常见原因是网络波动,可以换时间段重试,或者用 wsl --update 先把 WSL 本体更新到最新再继续安装发行版。
WSL 日常使用中我的几个核心习惯:用 wsl --list --verbose 看当前发行版和版本,确认跑的是 WSL2;在 WSL 内部用 Linux 原生的路径和命令,不要有事没事去访问 /mnt/c,跨文件系统 IO 很慢;WSL 和 Windows 之间的互操作(Interop)很好用,在 WSL 里可以直接敲 notepad.exe,在 PowerShell 里可以直接敲 wsl ls;想改 WSL2 的内存和 CPU 限制,在 Windows 用户目录下放一个 .wslconfig 文件。
你会在 Windows Terminal 里看到 WSL 的发行版自动成为一个配置项(比如“Ubuntu”),点开就能进入 Linux 命令行。这也是很多人第一次把 WSL 和 Windows Terminal 联系起来的契机。
1.4 Windows Terminal:它们共同的“新客厅”
到这里你应该发现了:CMD、PowerShell、WSL 都是“干活的引擎”,而 Windows Terminal 不是引擎,而是“客厅”——它是一个终端模拟器,负责给你一个好看的窗口、多标签、多窗格、快捷键、统一的外观配置,然后把 CMD、PowerShell、WSL、SSH 这些会话都装在这个窗口里。
以前 Windows 上的命令行窗口是 conhost.exe(控制台宿主),每个窗口就是一个独立的经典黑框,字体、颜色、缩放都很难配置。微软从 2019 年开始推出 Windows Terminal,从底层重写了渲染管线,支持 GPU 加速渲染、Unicode 字符、字体连字、真彩色、背景透明或亚克力效果,并且把配置收敛到一个 settings.json 文件里。
它的核心概念有三个。Profile(配置文件):每个 Profile 定义了一个会话类型,比如“Windows PowerShell”“Command Prompt”“Ubuntu”,还可以自定义“新建 SSH 会话”这样的 Profile。Tab/Pane:多个会话可以放在不同的标签页,一个标签页里还能左右或上下分屏。Settings:用户配置在 settings.json 里,跟过去的图形界面配置完全不同,但胜在可版本管理、可分享。
我个人对 Windows Terminal 的评价:它可能是我这些年获得的性价比最高的微软工具,装上之后,CMD 和 PowerShell 的体验是“从石器时代直接跳到新时代”。
2. 定位与对比:什么时候用哪个
2.1 一张表看清四大角色的差异
| 维度 | CMD | PowerShell | WSL | Windows Terminal |
|---|---|---|---|---|
| 本质 | 文本命令解释器 | 对象化脚本环境/SHELL | Linux 子系统 | 终端模拟器(外壳窗口) |
| 默认安装 | 有 | 有(5.1) | 需安装 | Win11 自带,Win10 可装 |
| 输出形式 | 文本 | 对象 | Linux 文本/程序 | 渲染文本与 ANSI 转义 |
| 脚本能力 | 差(批处理) | 强(.ps1) | 丰富(bash/zsh/python) | 无(不是脚本环境) |
| 适用场景 | 应急、简单系统操作 | Windows 系统管理、自动化 | 开发工具链、Docker、Linux 生态 | 统一窗口、多会话、美化 |
| 典型代表命令 | dir, ipconfig, netstat | Get-Process, Get-Service | apt, grep, systemctl | 标签页/窗格/主题切换 |
表格里有一个关键点需要强调:WSL 里跑的命令全是 Linux 原生命令,跟 Windows 没关系;Windows Terminal 本身不执行命令,它只负责把你的按键发送给会话进程,再把进程的输出画在窗口上。很多人不理解“终端”和“Shell”的区别,以为换了 Terminal 就能执行更多命令,这是个常见的认知偏差。
2.2 不同任务场景下的选型建议
我按真实工作流给几套组合。
场景一:日常 Windows 系统维护,比如查端口、杀进程、改服务、看日志。选 PowerShell。理由很简单:对象输出让你可以精确筛选,而且 Get-Service、Get-WinEvent、Get-Process 这些命令比 CMD 的 net 系列强太多。
场景二:写自动化脚本、定时任务,比如开机自启脚本、备份、数据处理。选 PowerShell 7。PowerShell 脚本的异常处理、模块化、错误捕获能力齐全,配合 Windows 任务计划程序很舒服。很多人搜“powershell开机自启脚本”,其实就是在任务计划程序里设置触发器为“登录时”,操作里选 powershell.exe -File xxx.ps1,或者干脆做成启动文件夹里的快捷方式。注意脚本要经过执行策略允许,否则开机后只有错误日志、没有实际效果。
场景三:开发环境,比如 Python、Node、Docker、编译工具链、人工智能模型训练。选 WSL2。这不是“Windows 不行”,而是绝大多数开发工具在 Linux 生态里维护最勤、坑最少。装 Python 依赖、跑 pip、编译 C++、用 Docker 后端,WSL2 都是更顺的选择。特别是 Docker Desktop 的 WSL2 后端,几乎是无痛跑容器的标准姿势。
场景四:什么都要用,还要好看的界面。用 Windows Terminal 统一开,默认 Shell 设成 PowerShell 或者你常用的 WSL 发行版,其他会话按标签页扩展。热词里提到的“windows启动elasticsearch”“redis windows下载”这类服务型需求,如果你在 WSL 里跑,反而比直接在 Windows 上找安装包省事,因为很多中间件官方只维护 Linux 版本。
还有一类:纯想用命令行写简单的批处理、远程管理老服务器,CMD 也不是不能用,但请把交互式输入和复杂逻辑留在 PowerShell 里。
2.3 选型时最容易踩的认知坑
第一个坑:把 CMD 和 PowerShell 当成同一个东西,以为学了 CMD 就懂 PowerShell。这俩是两套完全不同的语法和心智模型,你会 cd、dir 不代表你会 PowerShell。但你也不用怕,PowerShell 特意兼容了一批常用别名:在 PowerShell 里输入 cd、dir、copy、del 照样能用,因为它们是 Get-Location、Get-ChildItem、Copy-Item、Remove-Item 的别名。过渡期很平滑。
第二个坑:以为 WSL 是“在 Windows 上装了个 Linux 模拟器”。WSL2 是真实的 Linux 内核,只不过运行在虚拟化技术之上。你的 Ubuntu 环境里 apt 安装的包、跑的进程,都是货真价实的 Linux 版。反过来也意味着烧内存:默认 WSL2 可能吃掉你可用内存的一半,这个后面说怎么限制。
第三个坑:把 Windows Terminal 和 Windows PowerShell 混淆。有人问“为什么我装完 Windows Terminal 打开还是黑窗口、命令还是那些命令”?因为 Terminal 只是载体,里面的 shell 还是 PowerShell 或 CMD,功能并不会因为换了 Terminal 而自动变强。不过 PowerShell 7 + Windows Terminal + oh-my-posh 三件套组合起来,体验会有质的飞跃。
第四个坑:不区分启动命令。powershell.exe 启动的是老版 5.1,pwsh.exe 启动的是新版 7.x。WSL 的发行版启动命令是 wsl -d Ubuntu,或直接 wsl。不同入口背后是不同的配置和行为,排错前先确认自己进的是哪个环境,否则可能在一套配置里调了半天,结果发现根本没有加载。
3. Windows Terminal 美化方案:从默认到看着舒服
3.1 安装与基础配置:改 settings.json 前必做的一件事
Windows Terminal 在 Windows 11 上已经预装,Win10 可以通过 Microsoft Store 搜索“Windows Terminal”安装。装完打开,默认会列出你电脑上已有的 CMD、PowerShell、以及 WSL 发行版等 Profile。顺手的话把默认终端(defaultProfile)改成你常用的那个,比如设置成你的 Ubuntu 或 PowerShell 7。
关于配置方式,Windows Terminal 的菜单路径是“设置 -> 打开 JSON 文件”。我强烈建议所有美化操作都在 settings.json 里做,不要依赖界面按钮——因为 JSON 文件可复制、可备份、可同步,网上分享的美化配置也都是 JSON 片段。
一个必做的基础操作:开启“默认终端应用程序”设置。在 Windows Terminal 设置里,有一个“启动”页,把“默认终端应用程序”选为“Windows 终端”。这样你以后在任意地方运行 cmd.exe、powershell.exe,都会在 Windows Terminal 的新标签页里打开,而不是弹出一个丑陋的单独黑框。这个开关解决了我很大的一个痛点:以前动不动弹出来的黑框有时候想截图都截不全。
还有一个提升幸福感的点:先记住常用快捷键。Ctrl+Shift+T 新标签页、Ctrl+Shift+D 复制标签页、Alt+Shift+D 分屏、Ctrl+Shift+P 命令面板。所有快捷键都可在 settings.json 的 actions 里改,习惯之后效率提升非常明显。
3.2 配色方案:给终端一个顺眼的“皮肤”
Windows Terminal 默认配色是 Campbell,老实讲不算难看,但看久了确实有点腻。我推荐的路线是:找一个社区成熟的配色,直接贴进 settings.json 的 schemes 数组。我常用的两个方向:One Half Dark 是微软官方也自带的配色,眼睛舒适;Catppuccin Mocha 低饱和、柔和,长时间盯着不累;Tokyo Night 偏冷色调,代码对比度好。
具体做法很简单:复制配色方案的 JSON,粘贴进 settings.json 的 “schemes”: [ ... ] 数组里,然后在你的 Profile 里设置 “colorScheme”: “Catppuccin Mocha”。我个人的准则是:终端配色要低对比度、低饱和、别刺眼。因为终端是长时间工作的背景工具,不是发朋友圈的截图。某些霓虹风配色第一眼看很炫,一天下来眼睛像被针扎,真的别选。
除了文字配色,背景效果也是美化大头。Windows Terminal 支持在 Profile 里设置:
"opacity": 78, "useAcrylic": true配合 Windows 11 的云母效果还可以用 “backgroundEffect”: “mica”。我个人喜欢把窗口开得很宽但不全屏,背景透明度压到 78% 左右,再配一个深色壁纸,工作的时候能看到壁纸的色块又不会干扰阅读。注意:半透明效果在性能较差的机器上会带来一点渲染开销,如果拖动窗口明显掉帧,就把 useAcrylic 临时关掉。
3.3 字体:缺了 Nerd Fonts 再美的主题也白搭
这是美化方案里最容易被忽略、但最影响颜值的一环。很多终端主题(比如 oh-my-posh)会用到一些特殊字符:分支图标、箭头、电源线符号、状态小图标。这些字符在普通字体里没有,如果你不装带图标补丁的字体,屏幕上就会出现一个个“口口口”方块,主题瞬间垮掉。
解决办法:装 Nerd Fonts 字体。Nerd Fonts 是一组把大量图标字体(Font Awesome、Powerline 等)合并进主流等宽字体后的字体集合。我个人常用 Cascadia Code Nerd(与 Windows Terminal 的默认字体同源,风格最搭)和 JetBrainsMono Nerd(代码感更强)。下载后用右键安装,然后在 Windows Terminal 的 Profile 里设置:
"font": { "face": "CascadiaCodeNerd" }装完重启 Windows Terminal,你会看到提示符里的图标全出来了。这一步很多人漏掉,然后以为主题坏了,其实只是字体问题。还要提一下字体连字(Ligature)。Windows Terminal 默认支持,Cascadia Code 本身就带连字特效,比如 ->、=> 会渲染成连着的箭头符号。喜欢极简风的话,关掉其实更清爽。个人建议开,看代码的时候确实顺眼。
3.4 用 oh-my-posh 把 PowerShell 变成生产力工具
配好了 Terminal 的皮肤和字体,接下来给 PowerShell 本体装“主题”。这里我推荐 oh-my-posh——它本来是 PowerShell 社区的名人 Jan De Dobbeleer 做的,现在 Windows、macOS、Linux 通吃,是终端提示符美化的标准答案之一。
安装很简单,在 PowerShell 执行:
winget install JanDeDobbeleer.OhMyPosh然后编辑 PowerShell 配置文件,让它每次启动时加载:
notepad $PROFILE如果提示不存在,先执行:
New-Item -ItemType File -Path $PROFILE -Force在 $PROFILE 里写入:
oh-my-posh init pwsh | Invoke-Expression保存后重启 PowerShell,提示符立刻变成彩色主题。oh-my-posh 的主题切换是:
Set-PoshPrompt -Theme jandedobbeleer主题文件非常多,比如 agnoster、powerlevel10k_rainbow、paradox、atomic 等。不过光换主题还不够,想让提示符显示 Git 分支、Python 虚拟环境、执行时间这些信息,你需要在主题 JSON 里配置 segments。但这里我给新手一个建议:先从默认主题开始,用而不是调。等你理解了 segment 的机制,再去在 ~/.poshthemes 里抄一个喜欢的主题文件改两段。
除了主题,还有两个让 PowerShell 更好用的经典组件。一个是 posh-git,在提示符里集成 Git 分支状态,安装用 Install-Module posh-git,然后在 $PROFILE 里 Import-Module posh-git。另一个是 PSReadLine 设置,在 $PROFILE 里加一句:
Set-PSReadLineOption -PredictionSource History这样你在命令行里输入历史命令时,会出现灰色补全提示,按右箭头直接采纳,日常效率提升很大。我最终的开机自启脚本 $PROFILE 大概长这样:
Import-Module posh-git oh-my-posh init pwsh | Invoke-Expression Set-PSReadLineOption -PredictionSource History Set-PSReadLineOption -PredictionViewStyle InlineView Set-PSReadLineOption -EditMode Windows写完记得保存后执行 . $PROFILE 重新加载,或者干脆重开一个标签页。
4. 实操联动与踩坑排查
4.1 WSL 与 Windows Terminal 的联动配置
Windows Terminal 会自动发现 WSL 发行版并生成 Profile,所以装上 WSL 后,打开 Terminal 的标签下拉菜单就能看到“Ubuntu”。但有几个联动细节值得自己动手。
第一,给 WSL Profile 设置启动目录。默认 WSL 启动会回到发行版用户目录,我一般不做修改。但如果你混用了多个发行版,建议在每个 Profile 的 “commandline” 里显式写明 wsl.exe -d Ubuntu,防止默认发行版发错。
"commandline": "wsl.exe -d Ubuntu"第二,通过 WSL Profile 调出 Windows 程序。在 WSL 里直接输入 notepad.exe、code .,Windows 程序会正常启动,文件目录按 Windows 路径映射。这个互操作机制日常很香:从 WSL 里快速用 VSCode 打开当前目录,code .。但注意要在 Windows 侧装好 VSCode,并且安装“Remote - WSL”扩展,才能真正连上 WSL 内部环境。热词里提到的“在vscode中使用wsl”其实就是这个流程。
第三,限制 WSL2 的资源占用。这是很多人的痛点——WSL2 的虚拟机会按主机可用内存的一定比例默认吃内存。如果你跑个机器学习或者开一堆发行版,内存一下子就紧张了。方法是在 Windows 用户目录建 .wslconfig:
[wsl2] memory=8GB processors=4 swap=2GB然后执行 wsl --shutdown 重启 WSL 生效。这里我特别想说:如果你在 WSL 里跑深度学习或大数据任务,建议内存给足;如果只是写点脚本,1-2GB 都够。给太少了反而会频繁交换导致卡顿。
4.2 乱码、权限、杀端口:高频问题的排查思路
热词里有一堆跟乱码、权限、端口相关的搜索,这说明这些是新手最容易碰到的坎。统一总结一下。
乱码问题的根源基本都是编码不匹配。Windows 中文系统默认 GBK(代码页 936),而 Linux 和现代工具默认 UTF-8,两条命令之间互相传文本时就会乱。PowerShell 里的治标方法是:
$OutputEncoding = [Console]::OutputEncoding = [Text.Encoding]::UTF8或者临时切换代码页:chcp 65001。但治本方案是统一用 UTF-8。Windows Terminal 的 Profile 里默认已经支持 UTF-8,把 PowerShell 7 的文件编码设置为 UTF-8 无 BOM,WSL 内部本身就是 UTF-8 环境,不乱。遇到 cmd 输出乱码时,先看是不是代码页的问题,别急着格式化系统。
权限与执行策略是另一类高频问题。PowerShell 默认 ExecutionPolicy 是 Restricted,脚本不能随便跑。想放开,管理员 PowerShell 执行:
Set-ExecutionPolicy RemoteSigned -Scope CurrentUser热词里那条“powershell -ep bypass -c ...”其实就是 -ExecutionPolicy Bypass 的简写,意思是本次执行绕过策略。这是脚本分发场景的常见姿势,但我提醒一句:从网络上下载后直接执行的脚本,一定要先看看内容再跑,别养成本能性的复制粘贴执行。开机自启脚本跑不起来,九成原因不是代码而是策略和执行用户权限。先手动跑一遍,再检查任务计划程序的“使用最高权限运行”选项。
杀端口也是每天都会遇到的问题。CMD 里是 netstat -ano | findstr :8080 拿到 PID,再 taskkill /PID 12345 /F。PowerShell 里更优雅:
Get-NetTCPConnection -LocalPort 8080 | Select-Object -ExpandProperty OwningProcess拿到 PID 后 Stop-Process -Id xxx -Force。如果 netstat 查不到但端口还是被占用,考虑是不是 WSL 内部进程在监听。用 wsl netstat -tlnp 去 WSL 内部查。
其他几个高频问题也顺带说一下。python 敲了没反应,先确认 python 安装时勾了“Add Python to PATH”,然后重开一个终端,环境变量不会自动刷新到已开的进程。cmd 打开即闪退,多半是注册表里的 AutoRun 命令或环境变量 PATH 里有非法字符。用 regedit 查 HKEY_CURRENT_USER\Software\Microsoft\Command Processor\AutoRun,清掉可疑内容。“WSL needs updating”提示,多半是 WSL 版本太旧,直接管理员终端执行 wsl --update,再 wsl --shutdown 重启生效。
4.3 个人经验:我最终沉淀下来的日常配置
这里放上我目前稳定使用的最终配置骨架,可以直接抄。Windows Terminal settings.json 里关键片段:
"defaultProfile": "{你的 PowerShell 7 GUID}", "profiles": { "defaults": { "font": { "face": "CascadiaCodeNerd" }, "colorScheme": "Catppuccin Mocha", "opacity": 78, "useAcrylic": true, "useAtlasEngine": true } }schemes 数组里粘贴 Catppuccin Mocha 配色 JSON,actions 里自定义快捷键,比如 Ctrl+Shift+1 开 PowerShell、Ctrl+Shift+2 开 Ubuntu。PowerShell $PROFILE 我最后保留的只有三行:Import-Module posh-git、oh-my-posh init pwsh | Invoke-Expression、Set-PSReadLineOption -PredictionSource History。主题文件用了 paradox 的变体:左侧显示路径、Git 状态、Python 环境,右侧显示执行耗时。
说实话调主题是个无底洞,我建议控制在“能一眼看清状态就停手”,把精力留给真正的任务。再说一个很多人没注意的配置习惯:settings.json 和 $PROFILE 都可以放进自己的 dotfiles 仓库做版本管理。换新电脑,装好 Terminal 和 PowerShell 7,把这些文件拿回来,几分钟就能恢复一模一样的工作环境。这个习惯比任何一条美化命令都值钱。
我现在的工作流基本固定成这样的循环:Windows Terminal 主窗口,默认标签页开 PowerShell 7 处理 Windows 侧的事务,杀进程、查日志、文件批处理、跑脚本;需要打开 Ubuntu 时切换到 WSL 标签页跑开发命令,偶尔用分屏让两个会话并排工作。整套东西看起来比默认黑框舒服很多,但真正的收益不是“好看”,而是每天节省下来的切换成本和注意力消耗。最后再提醒一句:终端是工具,不是收藏品。你可以花一个下午折腾配色、主题、字体,但别陷入“配了三个小时还没开始写代码”的状态。把基础的三件套装好——Windows Terminal、PowerShell 7、oh-my-posh、Nerd Fonts——然后回到你真正要做的事情上。以后遇到新配色、新主题,随手改一改,保持好奇心就够了。