windows 如何从现有WSL bash窗口启动新的WSL bash窗口

okxuctiv  于 2023-01-21  发布在  Windows
关注(0)|答案(6)|浏览(303)

我正在努力弄清楚如何在WSL中通过bash命令启动一个新的“命令提示符”窗口,目标是启动第二个提示符,最好已经在bash中了。
我已经尝试过运行cmd.exe,但这只是让我从bash shell中的一个标准Windows命令提示符cmd。
https://i.imgur.com/tIdRMvR.png
运行bash.exewsl.exe命令只是将我从同一个bash shell中带到另一个bash shell。
https://i.imgur.com/OM1XTlG.png
我正在使用Debian发行版的WSL,虽然这应该没有关系。
我知道你可以通过在程序之前放置start命令从标准命令提示符创建一个新窗口,但是我找不到 *nix的等价物,也找不到如何从WSL内部调用做同样事情的bash命令。

rsaldnfx

rsaldnfx1#

这在WSL中的bash提示符下工作。
命令执行程序/c启动命令执行程序/c wsl.exe
(此处提供解决方案)

qij5mzcb

qij5mzcb2#

不需要调用cmd两次,我使用这种东西:

cmd.exe /c start wsl.exe -d $WSL_DISTRO_NAME --user $LOGNAME -- ssh -p 23 -L 80:10.0.0.1:80 -L 443:10.0.0.1:443 username@remoteserver

这将为同一用户打开另一个wsl窗口,并分发调用者窗口,然后在其中启动ssh会话。ssh会话可以替换为您要在新窗口中运行的任何内容...如果您只希望shell提示符,请忽略$LOGNAME之后的所有内容

qlzsbp2j

qlzsbp2j3#

从WSL启动新窗口的唯一方法是使用某种终端模拟器并启动它。有许多不同的选项:wslttywsl-terminalConemuCmder(基于Conemu)都是我的脑海中浮现出来的。Wslty基于mintty,mintty是Cygwin的默认终端模拟器,这是WSL出现之前人们使用的。我个人喜欢Cmder,但我发现设置很痛苦。YMMV。

bwntbbo3

bwntbbo34#

甚至更好的一个,如果你想打开某个发行版,转到资源管理器,类型shell:AppsFolder,找到你的发行版,做一个快捷方式到你的桌面,并在你的wsl内完成这一点

$ cmd.exe /c <absolute path of that shortcut>

例如:

$ cmd.exe /c "C:\Users\fake user which i just made up\Desktop\Ubuntu.lnk"

你也可以复制快捷方式到某个地方,并使用绝对路径,而不是只使用发行版名称,你可能需要使用""来封闭路径
编辑:如果你发现自己有这个错误CMD.EXE was started with the above path as the current directory.UNC paths are not supported我找不到任何解决方案,你可以使用this文档cmd.exe参数

qyyhg6bp

qyyhg6bp5#

所以这些答案对我来说都不管用。结果对我来说最好的解决方案是使用cmd.exe通过Windows终端(wt.exe)打开bash,即:

cmd.exe /c "wt.exe" -p "Debian"

使用-p指示命令行应用的配置文件名称,或保留该名称以使用默认值。
您可以使用此选项卡在新选项卡中打开并传递命令:

cmd.exe /c "wt.exe" -w 0 nt -p "Debian" python example.py

Official Microsoft documentation

fjaof16o

fjaof16o6#

WSL 2中,此操作有效:

$ cmd.exe /c start wsl.exe

相关问题