在Windows上使用Fish替换cmd

💡 原文中文,约2000字,阅读约需5分钟。
📝

内容提要

本文介绍了如何在Windows上使用MSYS2代替cmd或PowerShell运行Linux指令。下载安装MSYS2,添加环境变量,更换镜像源并更新系统,修正默认用户目录,安装常用开发工具,使用终端软件连接MSYS2环境,并设定默认终端为fish解释器。在MSYS2中使用Linux路径表示方式。

🔎

延伸解读

MSYS2 与 Windows 原生终端的关系

MSYS2 并非直接替换 cmd 或 PowerShell,而是在 Windows 上提供一个模拟 Linux 的环境。它通过将 Linux 命令编译为 Windows 可执行文件,让用户能在 MSYS2 终端内使用这些命令。若想在其他终端软件中调用 MSYS2 环境,需借助 msys2_shell.cmd 脚本,并指定 -shell 参数来切换解释器。

配置过程中的关键调整

安装后需将 MSYS2 的 usr/bin 目录加入 Path 环境变量,否则无法在外部终端调用。更换镜像源可提升下载速度,但更新时可能需多次重启终端并重复执行 pacman -Syu。修改 nsswitch.conf 中的 db_home 可将默认用户目录映射到 Windows 用户目录,避免路径混淆。

路径表示方式的差异

在 MSYS2 环境中必须使用 Linux 风格的路径,例如将 C:\Users\swsk33 写为 /c/Users/swsk33。盘符需转换为 /c、/d 等形式,反斜杠替换为正斜杠。若直接使用 Windows 路径,命令可能无法正确识别,导致操作失败。

工具安装与终端集成

通过 pacman 可一次性安装 fish、gcc、make、git、vim 等常用工具,无需在 Windows 上单独安装 MinGW 或 Git。在 Tabby 或 Windows Terminal 中,可配置启动命令调用 msys2_shell.cmd,并指定 -shell fish 来使用 fish 解释器,同时利用 -here、-full-path 等参数控制工作目录和环境变量加载。

❓

Q&A

如何在Windows上安装MSYS2?

访问MSYS2官方网站下载并安装装置包文件即可。

如何配置MSYS2的环境变量?

将MSYS2安装目录下的usr/bin路径添加到Path环境变量中。

如何更换MSYS2的镜像源?

使用指令 'sed -i "s#https?://mirror.msys2.org/#https://mirrors.tuna.tsinghua.edu.cn/msys2/#g" /etc/pacman.d/mirrorlist*' 来更换镜像源。

如何修正MSYS2的默认用户目录?

编辑etc/nsswitch.conf文件,将db_home行修改为db_home: /c/Users/%U。

在MSYS2中如何安装常用开发工具?

使用指令 'pacman -S fish gcc make git vim pkgconf' 来安装常用开发工具。

如何在Tabby中配置fish终端?

在Tabby中新建配置,使用指令 'D:Program FilesMsys2msys2_shell.cmd' -msys2 -defterm -here -full-path -no-start -shell fish。

🏷️

标签

➡️

继续阅读