在 Windows 上相对舒服地使用 Unix Like 环境
Msys2 是 Windows 下的一款 Unix Like 终端 & Shell 软件,提供了 Clang、MinGW 等开发环境和一些 GNU 软件,可以替代 Pwsh 作为终端来使用。
安装
下载官网给出的安装包进行安装。
包管理
Msys2 使用 Pacman 作为包管理工具,Arch 用户再熟悉不过了,操作也和 Arch 一样。
由于某些因素,最好换一下国内镜像仓库。点击开始菜单打开 MSYS2 MSYS,替换 USTC 镜像
1 | sed -i "s#mirror.msys2.org/#mirrors.ustc.edu.cn/msys2/#g" /etc/pacman.d/mirrorlist* |
替换之后,我们更新一下仓库信息和软件。
1 | pacman -Syyu |
用户目录
键入 pwd,可以看到 Msys2 环境中的用户目录与 Windows 的并不一样,如果希望与 Windows 共用用户目录并复用 ssh、git 等配置,可以将 Windows 用户目录挂载到 Msys2 环境的 /home 目录。
使用一款文本编辑器打开 C:\msys64\etc\fstab,添加一行
1 | C:/Users /home ntfs binary,noacl,auto 1 1 |
保存后,我们还需要添加一个环境变量才能生效。
设置 Windows 用户环境变量
打开高级系统设置,添加用户变量,
HOME=%USERPROFILE%
PATH=C:\msys64\usr\bin:$env:PATH # 这里只列举了一些,目的是使 pwsh 能使用 Msys2 安装的软件
具体的操作如图。


安装一些软件
根据自己的需求,装一些软件,
1 | pacman -S neofetch git zsh vim |
如果你已经在 Windows 上装过了 git,就没必要再次安装。

配置 zsh
上面我们已经安装好 zsh,现在设置一下默认 Shell,首先我们将 passwd 文件释放出来
1 | mkpasswd > /etc/passwd |
然后编辑 /etc/passwd 文件,你可以选择在 Msys2 中使用 vim /etc/passwd,也可以用 Windows 的编辑器找到 C:\msys64\etc\passwd 打开,找到你的用户名那一行,将最后的 /usr/bin/bash 改为 /usr/bin/zsh。

配置 ohmyzsh
现在我们可以配置一下 ohmyzsh
1 | $ sh -c "$(curl -fsSL https://raw.github.com/ohmyzsh/ohmyzsh/master/tools/install.sh)" |
对于 p10k 等等,这部分可以直接问搜索引擎,不多赘述。
设置 IDE 终端
以 VS Code 为例,默认情况下安装后 VS Code 的终端里是没有 Msys2 的,我们需要手动添加一下。
打开 settings.json, 添加如下配置,
1 | { |

保存后,打开一个新的终端,默认就是 zsh 了。
思考
如果你安装过 git,你可能会发现 git bash 会自动添加到 VS Code 的终端里,这中间不知道做了什么操作,可能是 Windows 存在什么注册表来注册终端软件?(我猜的)如果在系统层面将 Msys 注册成终端软件,那这些 IDE 什么的应该会自动加上吧(我不到啊)。
其他问题
ln -s 会复制
MSYS2 使用 ln -s 创建软连接时,会复制文件。
解决这个问题,只需添加一个环境变量
1 | export MSYS="winsymlinks:lnk" |
你可以选择添加到 /etc/profile,或者在 /etc/profile.d 添加文件。添加后创建软链接,就会创建快捷方式了(还是有区别的)。
