字节跳动Tiktok团队北上广深杭急招前后端开发,绿色内推邮箱:sunmaoyu@bytedance.com

Gitbash如何支持交互式命令?如何让gitbash的命令不乱码?winpty是什么鬼?干嘛用的?

 winpty 是一个 Windows 软件包,提供了类似 Unix pty-master 一样的接口,用于实现控制台程序之间的通讯。该软件包包括一个开发库 (libwinpty) 和一个用于 ygwin 和 MSYS 的工具用于在 Cygwin/MSYS pty 下运行 Windows 控制台程序。

 

MSYS: Minimal GNU(POSIX)system on Windows,是一个小型的GNU环境,包括基本的bash,make等等。与Cygwin大致相当。

 

GNU是一个自由的操作系统,其内容软件完全以GPL方式发布。这个操作系统是GNU计划的主要目标,名称来自GNU's Not Unix!的递归缩写,因为GNU的设计类似Unix,但它不包含具著作权的Unix代码

 

 Gitbash左上角的MINGW64是什么鬼?

 

MinGW(Minimalist GNU for Windows),又称mingw32,是将GCC编译器和GNU Binutils移植到Win32平台下的产物,包括一系列头文件(Win32API)、库和可执行文件。

另有可用于产生32位及64位Windows可执行文件的MinGW-w64项目,是从原本MinGW产生的分支[1]。如今已经独立发展[

 

MinGW是从Cygwin(1.3.3版)基础上发展而来

Cygwin是许多自由软件的集合,最初由Cygnus Solutions开发,用于各种版本的Microsoft Windows上,运行类UNIX系统。Cygwin的主要目的是通过重新编译,将POSIX系统(例如Linux、BSD,以及其他Unix系统)上的软件移植到Windows上

 

什么是mintty?

mintty是一个免费的开源终端模拟器,用于Cygwin,类似Unix的Windows环境。它具有本机Windows用户界面,不需要显示服务器;它的终端仿真旨在与xterm兼容。 Mintty基于PuTTY的终端仿真和Windows前端部分,但在很多方面对它们进行了改进,特别是在xterm兼容性方面。

 

 新版 Git for Windows 用的是 mintty 终端

1. 不支持本机交互式应用程序,需要安装 winpty ( Git Bash 已自带)

如下交互式命令不工作:

 

需要使用以下命令:

 

2. 当 Options 里 Text 选项卡中的 Character set 设置为 UTF-8 ,这样可以正常识别 utf8 相关的文件,   这样设置后,在 Mintty 窗口下运行一些 Win 上的命令时会出现乱码(比如 ping, ipconfig 等)

针对这些命令,使用 winpty 进行字符流转换。具体是先安装 winpty ( Git Bash 已自带),然后使用 winpty 执行这类命令($ winpty ping www.baidu.com )即可正常显示中文。

 

 

posted @ 2018-11-16 16:51  冒雨ing  阅读(7528)  评论(0编辑  收藏  举报