不得不说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。(如上)或者干脆等官方解决。