惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

美团技术团队
IT之家
IT之家
博客园 - Franky
博客园_首页
The Cloudflare Blog
酷 壳 – CoolShell
酷 壳 – CoolShell
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
量子位
阮一峰的网络日志
阮一峰的网络日志
月光博客
月光博客
V
V2EX
Hugging Face - Blog
Hugging Face - Blog
博客园 - 三生石上(FineUI控件)
M
MIT News - Artificial intelligence
Engineering at Meta
Engineering at Meta
GbyAI
GbyAI
Stack Overflow Blog
Stack Overflow Blog
小众软件
小众软件
Jina AI
Jina AI
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
博客园 - 叶小钗
Apple Machine Learning Research
Apple Machine Learning Research
B
Blog RSS Feed

博客园 - Frank.Cui

Scriban语言手册中文版 开源文件服务器file-service介绍 记一次redis病毒分析笔记 推荐一个比FiddlerCore好用的HTTP(S)代理服务器 适用于 Windows 10 的触摸板手势 vi命令示例大全 Linux系统中的常用命令 解决Protobuf生成的C#代码命名不规范问题 使用Markdown写作 DapperPoco -- 基于Dapper的、轻量级的、高性能的、简单的、灵活的ORM框架 使用StyleCop.Analyzers进行代码审查 使用ssh公钥密钥自动登陆linux服务器 自动化CodeReview - ASP.NET Core请求参数验证 Fiddler插件开发 - 实现网站离线浏览功能 自动化CodeReview - ASP.NET Core依赖注入 10个有关RESTful API良好设计的最佳实践 ASP.NET Core 获取控制器上的自定义属性 [转] Autofac创建实例的方法总结 PetaPoco - 轻量级高性能的ORM框架(支持.NET Core)
推荐一款好用的WSL终端模拟器
Frank.Cui · 2017-02-24 · via 博客园 - Frank.Cui

  Windows 10 中包含了一个 WSL(Windows Subsystem for Linux)子系统,我们可以在其中运行未经修改过的原生 Linux ELF 可执行文件。利用它我们可以做很多事情,对开发人员和普通用户都是如此。当然对开发人员的吸引力更大一些,因为这意味着在一些情况,不再需要使用 Linux 虚拟机、双系统、Cygwin/MSYS2 了。

  在WSL里我们可以直接访问本地文件系统,例如你电脑有3个分区C:,D:,E:,在WSL里的路径分别为/mnt/c,/mnt/d,/mnt/e

通常使用方法是:Win + R 输入 bash 直接进入,但系统自带的bash使用体验很差,主要有如下问题:

  1. 不能输入中文
  2. 中文的文件名/目录名会重叠或截断
  3. 复制粘贴麻烦
  4. 只支持16种颜色
  5. 可定制性差

  目前比较好的替代方案是使用 wsl-terminal,它是专门为 WSL 准备的终端模拟器,主体是 mintty,另外整合了一些工具,使用起来非常方便,也是目前用户体验最好的,大小也只有 1M 多。
使用方法见官方主页:https://github.com/goreliu/wsl-terminal

  实现方面,它是由在 WSL 里启动 sshd,然后使用 ssh 客户端登录的方法改进的。它的运行机制和 ssh 有很大的的区别。mintty 会运行 wslbridge,wslbridge 包含两个程序,wslbridge.exe 和 wslbridge-backend。从文件名可以看出来,前者是 Windows 程序,后者是 Linux 程序。wslbridge.exe 会在一个隐藏窗口运行 bash.exe 进入 WSL 环境,在其中运行相同目录下的 wslbridge-backend。wslbridge.exe 和 wslbridge-backend 之间会建立三个 tcp 连接,也就是将 stdin、stdout、stderr 分别通过三个 tcp 连接联系起来,连接建立后就不再监听任何端口了。而 mintty 就是一个终端模拟器,对它来说 wslbridge 和 ssh 没有什么区别。

  性能上,在我这里用 wslbridge 和 ssh 执行命令的速度是差不多的,前者稍微快一点,不明显。资源占用上,前者占优。

  使用的方便程度上,明显 wslbridge 占优。不再需要启动 sshd,配置信任关系等。另外 wslbridge 会自动将当前路径传递进去,不需要自己转换路径然后拼接 cd 命令,这样方便了许多。而且可以直接通过参数传递环境变量。我之前写的几个脚本减少了数十行。