Windows 11下Ubuntu 20.04子系统启动VS Code后终端无法使用的解决方案求助
解决WSL Ubuntu终端执行
code .后被阻塞的问题 我之前在WSL环境下也碰到过一模一样的情况!当你在Ubuntu终端里运行code .打开VS Code后,终端被占住没法继续输入命令,必须关掉VS Code才能用,确实特别麻烦。下面几个实用的解决方案,你可以挨个试试:
1. 临时救急:后台运行命令
最简单的方法就是在命令后面加个&,让VS Code在后台启动:
code . &
这样终端会立刻回到可用状态,VS Code也能正常打开。如果之后需要关闭这个后台的VS Code进程,可以用ps aux | grep code找到进程ID,再用kill <进程ID>结束它。
2. 永久解决:设置命令别名
如果不想每次都手动加&,可以给code命令设置一个别名,让它默认后台运行并和终端解绑。打开你的shell配置文件(比如~/.bashrc或者~/.zshrc,取决于你用的是bash还是zsh),添加下面这一行:
alias code='code "$@" & disown'
保存文件后,运行source ~/.bashrc(或者对应的zsh配置文件)让别名生效。之后再运行code .,VS Code会在后台启动,终端完全不受影响,就算你关闭终端,VS Code也能继续运行。
3. 检查WSL版本
如果你的新笔记本用的是WSL 1,可能会出现这种进程阻塞的问题。你可以升级到WSL 2试试:
- 打开Windows的命令提示符或者PowerShell
- 运行命令查看当前WSL版本:
wsl --list --verbose - 如果Ubuntu 20.04的版本是1,运行下面的命令升级:
wsl --set-version Ubuntu-20.04 2
升级完成后重启WSL,再测试code .是否还会阻塞终端。
为什么旧笔记本没这个问题?
大概率是你的旧笔记本已经设置过上述的别名,或者默认使用的是WSL 2,也有可能旧版本的VS Code在WSL环境下默认就是后台启动的,新版本调整了这个行为。
内容的提问来源于stack exchange,提问作者FluffySheep1990
相关产品推荐
相关产品推荐

