You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何修改Bash脚本以在WSL 2中打开指定目录的多终端标签页

如何修改Bash脚本以在WSL 2中打开指定目录的多终端标签页

嗨,这个问题我之前也碰到过!WSL 2本身并没有预装GNOME终端,所以你原来的脚本里gnome-terminal命令找不到是很正常的事儿。咱们可以换用Windows Terminal(现在Win10/11默认自带,没有的话去微软商店安装就行)来实现需求,它对WSL的支持非常友好,操作起来也更顺手。

方案一:使用Windows Terminal(推荐)

Windows Terminal提供了命令行启动参数,可以直接新建WSL标签页并指定工作目录,具体脚本修改如下:

#!/bin/bash

# 新建标签页并进入WSL的folder1目录
wt --tab wsl -- cd /home/$USER/folder1
# 再新建一个标签页并进入WSL的folder2目录
wt --tab wsl -- cd /home/$USER/folder2

简单解释一下这段脚本:

  • wt是Windows Terminal的命令行启动器,直接在WSL的bash里就能调用;
  • --tab表示要新建一个终端标签页;
  • wsl指定这个标签页启动WSL会话;
  • 后面的cd /home/$USER/folder1是WSL会话启动后自动执行的命令,执行完后会自动停留在该目录的交互shell中。

如果你的Windows Terminal版本较旧,可能需要把--tab换成new-tab,不过现在新版都支持--tab参数啦。

方案二:使用WSL内的Linux终端(适合习惯原生Linux终端的用户)

如果你一定要用Linux原生的终端工具(比如xfce4-terminal),需要先在WSL里安装桌面环境和终端,步骤稍繁琐:

  1. 首先安装xfce4桌面环境和终端:
    sudo apt update && sudo apt install xfce4 xfce4-terminal -y
    
  2. 在Windows上安装X服务器(比如VcXsrv、X410),启动时记得勾选“Disable access control”;
  3. 在WSL的bash里设置DISPLAY环境变量(可以加到~/.bashrc里永久生效):
    export DISPLAY=$(cat /etc/resolv.conf | grep nameserver | awk '{print $2}'):0.0
    
  4. 最后修改你的脚本为:
    #!/bin/bash
    
    xfce4-terminal --tab -- bash -c "cd /home/$USER/folder1; exec bash"
    xfce4-terminal --tab -- bash -c "cd /home/$USER/folder2; exec bash"
    

不过这种方法需要每次启动X服务器,日常使用不如Windows Terminal方便,所以更推荐第一种方案。

备注:内容来源于stack exchange,提问作者splunk

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.16 10:47:57