securecrt的本地shell设置使用wsl

  自从securecrt9支持本地shell后,每次用本地shell,就只能是cmd或ps命令行,实在是不方便,设置wsl.exe或bash.exe提示不是console程序,设置不成功,郁闷,放弃了一段时间。

  偶然的,在cmder中看到设置wsl终端时会用到命令set "PATH=%ConEmuBaseDirShort%\wsl;%PATH%" & %ConEmuBaseDirShort%\conemu-cyg-64.exe --wsl -cur_console:pm:/mnt这么一行,conemu-cyg-64.exe带了--wsl参数,但执行前又设置环境路径包含了wsl目录,想到实际执行时可能调用了wsl目录下的相关命令,直接到该目录下查看包含wslbridge.exe 和wslbridge-backend等文件,查看readme.md了解到wslbridge的说明和用法,直接在cmd命令行中执行wslbridge.exe也进入了wsl,猜测conenmu使用它作为wsl的终端,那wslbridge应该就是一个console程序,是不是securecrt本地shell通过它就能访问wsl了呢?

  尝试把securecrt的本地shell设置为%ConEmuBaseDirShort%\wsl\wslbridge.exe,能设置成功,执行本地shell,熟悉的wsl出现在securecrt的tab中。

       尔后上网查看了解到wslbridge项目,包含两个程序,wslbridge.exe 和 wslbridge-backend。从文件名可以看出来,前者是 Windows 程序,后者是 Linux 程序。实际执行时wslbridge.exe 会运行 bash.exe 进入 WSL 环境,在其中运行相同目录下的 wslbridge-backend。wslbridge.exe 和 wslbridge-backend 之间会建立三个 tcp 连接,也就是将 stdin、stdout、stderr 分别通过三个 tcp 连接联系起来,连接建立后就不再监听任何端口了。

posted @ 2022-09-24 18:27  梦想与现实边缘  阅读(1055)  评论(0编辑  收藏  举报