ConEmu搭配Ubuntu Bash:如何在当前目录打开新标签页
刚巧我前段时间也在ConEmu里折腾WSL Ubuntu的目录问题,两个需求都完美解决了,给你一步步说怎么配置:
一、让新打开的Ubuntu Bash标签页继承当前目录
这个核心是让ConEmu把当前目录传递给WSL,步骤很简单:
- 打开ConEmu设置,快捷键是
Win + Alt + P,比点菜单快多了 - 左侧导航栏找到「Tasks」,然后定位到你用来启动Ubuntu Bash的任务(一般默认叫「{Bash::Ubuntu}」,如果是自定义的就找你命名的那个)
- 点击任务名称进入编辑界面,找到「Commands」输入框
- 把原来的命令替换成下面这段:
这里的%windir%\system32\wsl.exe -d Ubuntu -e bash -c "cd \"$ConEmuDir\" && exec bash"$ConEmuDir是ConEmu自动传递的当前目录变量,WSL会自动把Windows路径转换成Linux格式的路径,不用你手动转 - 最后点「Save settings」保存,再开新标签试试,是不是直接继承之前的目录了?
二、设置Ubuntu Bash的默认启动目录(替换成你的工作区)
如果第一次打开ConEmu想直接跳到工作区,而不是用户目录,这么改:
- 同样打开ConEmu设置(
Win + Alt + P),找到对应的Ubuntu Bash任务 - 在「Commands」输入框里,把命令改成指定工作区的版本。比如你的工作区是
D:\MyWorkspace,要转换成WSL的路径/mnt/d/MyWorkspace,命令就是:%windir%\system32\wsl.exe -d Ubuntu -e bash -c "cd /mnt/d/MyWorkspace && exec bash" - 如果你想同时满足默认目录+新标签继承当前目录,就用这个逻辑更完善的命令:
意思是:如果是从现有标签打开新标签(有%windir%\system32\wsl.exe -d Ubuntu -e bash -c "if [ -n \"$ConEmuDir\" ]; then cd \"$ConEmuDir\"; else cd /mnt/d/MyWorkspace; fi && exec bash"$ConEmuDir变量),就继承当前目录;如果是第一次启动ConEmu,就自动跳到你的工作区 - 保存设置后重启ConEmu,就能看到效果了
小提示
如果你的WSL发行版不是默认的「Ubuntu」(比如是Ubuntu-22.04),记得把命令里的-d Ubuntu改成你的发行版名称。可以在CMD里输入wsl -l查看所有已安装的WSL发行版名称。
内容的提问来源于stack exchange,提问作者Yannic Bürgmann
相关产品推荐
相关产品推荐

