不得不说Windows的Terminal实在是太不友好了。

  • CMD,没啥好说的,要死的玩意儿。
  • PowerShell,知乎上吹的比较厉害,但是另起一套,和*nix上完全不一样,学习成本不划算,何况我并不是一个专业用户。
  • WSL,知乎吹的更厉害了,用这玩意儿,各个开发的SDK得准备两套,简直神经病。而且,一个实现不完整的Linux == 不能用的Linux。

用了一段时间Cygwin,觉得还挺好的。

  • 这是一个GNU and Open Source tools的集合,类似于但不是Linux。
  • 一个DLL提供POSIX实现
  • 不能跑Linux程序(也没人要跑Linux程序
  • 某些功能实现比较神奇,可能需要balabala(我也用不到

完美契合我的需求,我只是能跑常见简单tools的环境,比如iperf,cat,less,telnet,grep,awk ……

IDEA集成

Settings-Tools-Terminal-Shell Path 填入

"c:\cygwin64\bin\bash" -lic "cd ${OLDPWD-.}; bash"

完事,ojbk。

ConEmu集成

Settings-Startup-Tasks添加task

"c:\cygwin64\bin\sh" -lic "cd ${OLDPWD-.}; bash"

照样完事,ojbk。


Tips

与SSH for Windows的兼容问题
$ ssh -V
OpenSSH_for_Windows_7.6p1, LibreSSL 2.6.4

$ ssh root@remote
# 能正确登陆到远端
# 在远端执行命令
$ htop
windows Error opening terminal: cygwin.

在Cygiwn的profile中添加

export TERM=xterm
sudo代替

某些时候,在terminal中做一些操作是需要管理员权限的,Windows没有sudo,真的是一大痛点啊。(大雾)

实现方法

intellij IDEA终端maven乱码

用Windows的好儿郎绝不认输!

但是这个一个bug,如果是使用TERM=xterm,mvn的输出带颜色的部分就会乱码

[?[1;34mINFO?[m] Scanning for projects...

如果使用TERM=Cygwin 那么,ssh就会用不了

做法是,一个用sh,一个用bash。(如上)或者干脆等官方解决。