因为一些不可抗的原因,我这段时间在用 Windows。但是在这之前我已经有半年左右没用过 Windows 了,离开了 Linux 下的那些工具可以说是浑身难受。而且最近这段时间刚刚配了一下 tmux 之类的东西感觉挺好。到了 Windows 下可真算是这也没有那也没有了。
于是装了 openSUSE 和 Arch 两个 WSL(Windows Subsystem Linux) 发行版。装完并设置好自己的 dotfiles 之后用了一段时间才发现 Windows 下根本就没一个好用的终端模拟器:
并且 vim 在这些终端模拟器里基本就是不能使用(尤其是配色上面)。这些问题据说是 ConHost 的限制,他们做终端模拟器的人也没办法。
前段时间巨硬的 Build 大会上公布了 Windows Terminal,我也去他们的 CI 上面下了一个 Dev 构建然后试了下,发现:
这时候又看到说我们可以用 SSH,毕竟 Windows 下还是有不少还算好用的 SSH 客户端的嘛。可是这个方法也不是很完美。一是 WSL 里没有真正意义上的 init,像 Arch 这样只有纯 systemd 的发行版无法通过它自动启动 sshd ;二是就算能用 RC 脚本启动 sshd (比如 Ubuntu ),也还是需要用户操作,相对麻烦。
然后我就想造一个东西能启动 WSL 里面的 sshd,网上稍微搜了下好像也没有同类程序。我就自己下载了 Visual Studio 试着写了一个。
其实本来想做成 UWP 的但是试了一下发现完全没头绪,最后用了 WPF。我总共就没做过几个图形程序,希望大佬们轻点。
现在基本功能在我这边测试是能用了(可以列出发行版,可以启动 sshd,可以开机自动启动),但是还是很不完善:
但是它至少能用了嘛!
上架到了巨硬商店,贪心设了 0.99 刀的价格。提供无限免费试用,就把这个收费当捐赠吧(小声
1
EricXuu 2019-06-02 19:49:57 +08:00 via Android
|
2
goreliu 2019-06-02 19:52:12 +08:00 via Android
可以试试 wsltty,颜色、鼠标、vim 和 tmux 支持都正常,本地使用的话没太大必要用 ssh。另外把 wsl 的路径从防病毒软件扫描路径排除就没有 Antimalware cpu 占用了。
|
4
RedL0tus OP |
5
lhx2008 2019-06-02 20:04:28 +08:00
不错,wsl 里面的 ubuntu 好像用 service sshd start 就可以,就是自启动还要写一个脚本
我要用 Docker, 还是虚拟机 + SSH 省心。WSL 就配合 Clion 编译下程序 |
6
iyaozhen 2019-06-02 20:31:14 +08:00
我是写了个 run_wsl.vbs ,防止启动文件夹下
set ws=wscript.createobject("wscript.shell") ws.run "C:\Windows\System32\bash.exe -c 'sudo /usr/sbin/service ssh restart'",0 《 Windows 10 生产力提升之 WSL 实践》 https://iyaozhen.com/windows10-wsl-ubuntu.html “现在无法只停止 sshd 服务,只能杀死所有同个发行版的 WSL instance ” 不知道有没有记错,好像现在版本 WSL 只启动一个实例,直接 ssh 上去然后 sudo service ssh stop ? |
7
RedL0tus OP @iyaozhen 我是用 Arch WSL 测试的,它没有 RC 脚本所以用不了 service ;程序里启动在前台的 sshd 再启动一个 WSL 进程就看不到了,应该是隔离到了另一个 instance 里,所以我现在是这么做的... 我这里是 1903,具体我也不清楚了。
|
9
RedL0tus OP @Nasei 至少我测试出来是这样的 😂
都是独立的 WSL instance,ps 列不出别的 instance 的进程自然也无法操作( |
10
Himingway 2019-06-02 23:38:17 +08:00
|
11
mxalbert1996 2019-06-02 23:46:23 +08:00 via Android
wsl-terminal 试过了吗?
|
12
NSAgold 2019-06-03 02:18:43 +08:00 via Android
@RedL0tus #3 楼上#1 那个应该不用手动启动 wsl 了。因为用 vbs 脚本启动了。
也可以把 vbs 的快捷方式拖进开始菜单的启动文件夹里(藏挺深,和 wsl 的目录差不多深) (我之前做法也是写了个 vbs 脚本无窗口启动 不过是调用 bash 启动 wsl 里的其他程序。) |
13
glouhao 2019-06-03 07:41:48 +08:00 via Android
搭车问下 学习 python 爬虫,放 wsl 里效率咋样,比直接放 win10 如何?
|
16
lqh0126 2019-06-03 15:40:46 +08:00
楼主试一下 VSCode 里的 Terminal ?
|
18
BUYI 2019-06-05 17:25:17 +08:00
Moba xterm 可以直接打开 WSL 终端(当然它也可以打开 cmd.exe powershell 等等) Session 管理也很好
|