Windows Terminal 与 WSL 使用技巧

1. Windows Terminal vs PowerShell:躯壳与灵魂

你可以把它们的关系想象成 “电视机” (Windows Terminal)“电视频道” (PowerShell)

  • Windows Terminal (终端模拟器)
    • 它是“电视机”
    • 它只负责 “显示”。它管理窗口的大小、背景颜色、字体、标签页(Tab)、分屏(Pane)。
    • 它本身不懂你在打什么命令。你打 ls,它只是把字符传给后台;后台传回结果,它负责把结果渲染在屏幕上。
    • 因为它只是个“显示器”,所以它可以显示 PowerShell 的画面,也可以显示 CMD 的画面,甚至可以显示 WSL (Ubuntu) 的画面。这就是为什么你在 Windows Terminal 的下拉菜单里能看到那么多选项。
  • PowerShell (Shell / 解释器)
    • 它是“电视频道/节目内容”
    • 它负责 “思考”。它是一个程序,负责接收你的指令(比如 cdpython),去操作系统里执行,然后把结果(文本)吐出来。
    • 它没有“窗口”的概念,它只管处理字符流。

总结: 刚才我们遇到的跳转问题,是 PowerShell(频道) 只要一开播就读取了自己的剧本(配置文件),但我们在 Windows Terminal(电视机) 的设置里改配置,是治标不治本的,除非直接把那个“剧本文件夹”删了。


2. 如何像 CS 高手一样高效使用 Windows Terminal?

作为 CS 学生,你不需要鼠标点点点,你的手应该永远在键盘上。

A. 掌握“忍术”快捷键 (必须形成肌肉记忆)

Windows Terminal 的快捷键设计逻辑和 VS Code 非常像:

  • 多任务分屏 (Pane):这是最酷的功能。一边跑服务器 log,一边跑客户端测试。
    • Alt + Shift + D:自动切分屏幕(左右或上下)。
    • Alt + 方向键:在分屏之间切换焦点。
    • Ctrl + Shift + W:关闭当前分屏。
  • 标签页管理
    • Ctrl + Shift + T:新建标签页。
    • Ctrl + Tab:切换标签页。
  • 命令面板 (Command Palette)
    • Ctrl + Shift + P:就像 VS Code 一样,弹出一个搜索框,你可以搜“分屏”、“改颜色”、“改字体”,不用去记所有快捷键。

B. 配置文件 (settings.json) 的妙用

既然你已经看过 settings.json 了,你可以利用它做更多定制:

  • 设置默认启动项:如果你以后主要用 WSL (Ubuntu) 开发,可以在 settings.json 里把 defaultProfile 的 GUID 改成 Ubuntu 的 GUID。这样打开终端直接进 Linux,不用切。
  • 美化 (Nerd Fonts):去下载一个 Nerd Font (比如 MesloLGS NF),然后在配置里启用它。这样你的终端就能显示那个酷炫的 ➜ 图标、Git 分支图标和各种编程语言的 Logo。

3. WSL (Windows Subsystem for Linux) 的高效打开方式

WSL 是微软给开发者最好的礼物,它让你在 Windows 上拥有了完整的 Linux 内核。

A. 核心口诀:code .

这是连接 Windows 和 Linux 的虫洞。

  1. 在 Windows Terminal 里进入 Ubuntu (WSL)。
  2. cd 命令进入你的项目文件夹。
  3. 输入 code . 并回车。 奇迹发生: 它会打开 Windows 上的 VS Code,但 VS Code 的“后端”是连接在 Linux (WSL) 里的!
  • 你的代码跑在 Linux 环境里(环境隔离,不论是 Python 还是 Node.js 都很纯净)。
  • 你的编辑器用的是 Windows 的图形界面(流畅,快捷键熟悉)。 这是目前最主流的 Full Stack 开发模式。

B. 文件系统的“传送门”

  • 从 Windows 找 Linux 文件:在资源管理器地址栏输入 \\wsl$。你可以像访问 U 盘一样访问 Linux 里的文件。
  • 从 Linux 找 Windows 文件:Windows 的 C 盘挂载在 /mnt/c
    • 比如你想在 Linux 里处理桌面上的文件:cd /mnt/c/Users/jh/Desktop

C. 别在 NTFS 文件系统里跑 Linux 项目! (重要坑点)

虽然 Linux 能访问 /mnt/c,但不要把你的 Node.js 或 Python 项目放在 Windows 的文件夹里(比如 D:\AUPC)然后用 WSL 去跑。

  • 原因:跨文件系统 IO 速度极慢(慢 10 倍以上),而且会有文件权限问题。
  • 正确做法:把项目存在 Linux 自己的文件系统里(比如 ~/projects/),然后用 code . 去编辑它。