Windows 下 WSL2 运行 Claude Code 卡顿的解决方法

问题:

WSL2,Ubuntu,claude code 最新版。
非 root 用户下运行 claude code,在程序内打字会卡顿。

原因:

WSL2 会将 Windows 的 Path 追加到 Linux 的 $PATH,使 Linux 终端可直接运行 powershell.exe 等 Windows 程序。而 Claude Code 会检测 $PATH,发现 powershell.exe 后,会反复调用它获取 Windows 用户目录。但 WSL2 中从 Linux 启动 Windows 程序延迟高,导致每次按键都需等待该调用,引发周期性卡顿。

解决方法(任选一种):

  • 复制到 Ubuntu 终端运行:
mkdir -p ~/bin

cat << 'EOF' > ~/bin/powershell.exe
#!/bin/bash
if [[ "$1" == "-Command" && "$2" == "\$env:USERPROFILE" ]]; then
  echo "C:\\Users\\Administrator"
else
  /mnt/c/Windows/System32/WindowsPowerShell/v1.0/powershell.exe "$@"
fi
EOF

chmod +x ~/bin/powershell.exe

if [[ "$SHELL" == */zsh ]]; then
  echo 'export PATH="$HOME/bin:$PATH"' >> ~/.zshrc
  SHELL_CONFIG_FILE=~/.zshrc
elif [[ "$SHELL" == */bash ]]; then
  echo 'export PATH="$HOME/bin:$PATH"' >> ~/.bashrc
  SHELL_CONFIG_FILE=~/.bashrc
else
  SHELL_CONFIG_FILE="your shell config file (e.g., ~/.bashrc or ~/.zshrc)"
fi

export PATH="$HOME/bin:$PATH"

echo ""
echo "✅ 修复完成!"
  • Ubuntu 中不加载 Windows 的环境变量(不推荐)
sudo tee -a /etc/wsl.conf >/dev/null << EOF

[interop]
appendWindowsPath = false
EOF
61 个赞

太强了,大佬

2 个赞

我没碰到卡顿情况

3 个赞

非常需要,wsl2直接卡死了

2 个赞

我是刚启动后卡顿一会儿,原因是加载mcp,等一会儿就好了

3 个赞

真的太强了,大佬,真好一直被这个问题困扰。

1 个赞

我还以为是wsl读硬盘到瓶颈了,然后卡顿,原来是这个问题

1 个赞

牛逼的,给大佬点赞

1 个赞

感谢佬,没遇到过,先码住

1 个赞

太强了,佬

1 个赞

哈哈,这个问题我也遇到了,claude的repl卡顿的要死;微软根本不关心你到底需不需要path,而且这个走的9P,慢的要死。

1 个赞

感谢分享

1 个赞

感谢分享,完美解决

1 个赞

感谢, wsl2 claude code 卡得要死, qwen 就没这问题

1 个赞

太强了,大佬。装完wsl2就碰到这个问题了,rokey linux也能用

1 个赞

谁懂一出现问题在L站一搜就有解决方案的救赎感,今天突然开始卡的不行,我以为电脑要报废了

1 个赞

很好用,感谢分享!

1 个赞

感谢大佬,搞完之后流畅太多了

1 个赞

牛逼大佬

可能会的win下这么装,先mark这个方法