在 Windows 里做到类 Unix 系统的使用体验
先上效果图:

前言
最近又回到使用 Windows 环境开发。在 Windows 下获得类 Unix 系统的体验一直不是很好,尤其是在使用命令行时。Windows 自带的命令行工具 cmd 和 PowerShell 都不如 Unix 系统下的 bash 和 zsh 好用。所以,我决定在 Windows 下折腾一下 zsh,并且让 zsh 能在 Windows Terminal 中使用。
整体思路如下:Windows Terminal 只负责“窗口”,真正干活的是 Cygwin 提供的 zsh.exe,Oh My Zsh 再在 zsh 之上负责主题和插件。
环境要求
以下步骤是在 Windows 10 及以上系统中进行的(更推荐 Win11,截至 2024-03-26 已经是 Win11 23H2 22631.3296)。
为了节省时间,文章中类似下载安装等基础入门的步骤我是用 GitHub Copilot 生成的,并经过了我的审核,避免一眼 AI 犯的低级错误。
安装 Windows Terminal(必须)
软件源
Windows Terminal 有两种可信的下载安装渠道:
- Microsoft Store 中下载安装;
- 从 GitHub 的 releases 页面下载最新的安装包。
任选其一即可,小白推荐使用 Microsoft Store 安装。Windows 11 已经自带 Windows Terminal,可以跳过这一步。
方法 1:Microsoft Store
- 打开 Microsoft Store,搜索“Windows Terminal”。
- 点击“获取”,然后安装。
- 安装完成后,打开“开始”菜单,找到并运行“Windows Terminal”。
方法 2:GitHub Releases
- 访问 GitHub 的 releases 页面。
- 下载最新的
.msixbundle文件。 - 双击下载的文件,开始安装。
- 安装完成后,打开“开始”菜单,找到并运行“Windows Terminal”。
安装 Cygwin(极力推荐)
这里没有选择 Git for Windows 的原因是:装上了就真的只是装上了 = = 啥也不知道,包括背后的原理……
Cygwin 是一个在 Windows 上运行的类 Unix 环境。它提供了一套类 Unix 系统下的工具和库,可以让你在 Windows 上获得类 Unix 系统的体验。
个人理解:Cygwin 就像 Linux 各发行版的 apt、yum/dnf、yay、pkg 等包管理工具(但它是一整套环境),可以非常方便地在 Windows 上安装类 Unix 系统的工具和库。
安装过程:

注意事项主要有:
- Cygwin 的安装包可以从官网 cygwin.com 下载,直接下载
setup-x86_64.exe即可。 - 安装时,在软件包选择界面搜索并勾选
zsh、git、curl等工具(后面安装 Oh My Zsh 要用到git和curl)。 - 之后想补装软件包,重新运行一次
setup-x86_64.exe即可。
配置 Windows Terminal 及系统环境变量
配置 Windows Terminal
概述:打开 Windows Terminal 新增一个配置文件,以便在 Windows Terminal 中使用 Cygwin 的 zsh。
步骤如下:
打开 Windows Terminal。
默认情况下,Windows Terminal 会打开一个 PowerShell 窗口。我们需要新建一个配置文件,以便在 Windows Terminal 中使用 Cygwin 的 zsh。
点击 Windows Terminal 窗口标签栏右侧的下拉菜单,选择“设置”。
在设置窗口左下角,点击“+ 添加新配置文件”。
按照如图所示配置:

需要特别注意的是:
- “命令行”(
commandline)配置项的值为Drive:\cygwin64\bin\zsh.exe --login -i,其中Drive是驱动器盘符,Drive:\cygwin64是 Cygwin 的安装目录。--login表示以登录 shell 启动,会读取/etc/profile等文件来设置HOME、PATH等环境;-i表示交互模式。不加有时也能用,但建议加上,环境更完整。 - 启动目录建议设置到其他磁盘目录,如
D:\YourNameDir,我这里设置的是D:\project,目的是避免某一天不得不重装系统……又或者 C 盘空间爆红时头疼。当然,这一步也可以在“配置文件” → “默认值” → “启动目录”中进行全局设置,所有配置文件都会生效。 - 回到左侧的配置列表,在“启动” → “默认配置文件”中选择刚刚新增的配置文件,点击“保存”。之后每次打开 Windows Terminal 都会默认使用这个配置文件(zsh)。
配置系统环境变量
概述:把 Cygwin 的目录加入系统环境变量 Path,这样在 Windows 的其他终端里也能直接调用 Cygwin 的工具。
- 打开 Windows 的“控制面板”。
- 点击“系统和安全”。
- 点击“系统”。
- 点击“高级系统设置”。
- 在弹出的“系统属性”窗口中,点击“环境变量”。
- 在“系统变量”中,找到
Path,点击“编辑”。 - 点击“新建”,添加 Cygwin 的
bin目录,如Drive:\cygwin64\bin,还有Drive:\cygwin64\sbin。 - 点击“确定”,保存配置。
在 Windows Terminal 中测试 zsh 可用性
验证配置
打开 Windows Terminal,如果前面配置正确,默认打开的就是 Cygwin 的 zsh 啦。也可以运行下面的命令确认:
| |
第一次启动 zsh 时,可能会出现
zsh-newuser-install的配置向导,按q退出,或者按0创建一个空的~/.zshrc即可,反正后面 Oh My Zsh 会接管它。
配置及美化 zsh
安装 Oh My Zsh
概述:安装 Oh My Zsh,以便配置和美化 zsh。
打开 Windows Terminal。
运行以下命令安装 Oh My Zsh:
1 2# 安装 Oh My Zsh(首选) sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"在中国大陆地区,如果遇到网络问题,可以使用清华大学 TUNA 镜像安装:
1 2 3 4# 安装 Oh My Zsh(备选) git clone https://mirrors.tuna.tsinghua.edu.cn/git/ohmyzsh.git cd ohmyzsh/tools REMOTE=https://mirrors.tuna.tsinghua.edu.cn/git/ohmyzsh.git sh install.sh安装完成后,重启 Windows Terminal。
如果你想更换主题,可以在
~/.zshrc文件中修改ZSH_THEME的值,然后重启 Windows Terminal 查看效果。如果你想安装插件,可以把插件下载到
$ZSH_CUSTOM/plugins目录,再在~/.zshrc中启用它,然后重启 Windows Terminal。
安装 zsh-autosuggestions 插件
推荐一个插件:zsh-autosuggestions,它会根据历史命令在输入时给出灰色的建议,按 → 即可采纳。
把插件克隆到 Oh My Zsh 的自定义插件目录(注意目标路径要带上插件名):
1git clone --depth=1 https://github.com/zsh-users/zsh-autosuggestions ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions编辑
~/.zshrc文件,在plugins中添加zsh-autosuggestions:1 2 3nano ~/.zshrc # 修改 plugins 配置项,添加 zsh-autosuggestions 插件,最终修改结果: plugins=(git zsh-autosuggestions)让配置生效:重启 Windows Terminal,或者执行
source ~/.zshrc。最终效果:

引用
Oh My Zsh 官网:ohmyz.sh,GitHub 仓库地址:ohmyzsh/ohmyzsh
MSYS2:A collection of tools and libraries providing you with an easy-to-use environment for building, installing and running native Windows software.
写这篇文章时因为是在 Windows 上操作的……所以同时还遇到了 CRLF 换行符的问题。这个问题在 Linux 下不会遇到,但是在 Windows 下就会遇到,解决方法参考:GitHub Docs:配置 Git 处理行尾