live with scopegit
上一篇谈到用Vagrant
管理虚拟机, 但总须要一个ssh
工具登陆虚拟机. 目前, 微软官方并不提供ssh
(彷佛官方的ssh
已经在开发日程上了), 你须要安装. 你或者安装一些工具, 会自带ssh
程序, 如git for Windows
, 只是程序并不在系统path
中, 须要本身添加以方便命令行使用. 或者你安装ssh
客户端, 如putty
, xshell
. 其中推荐xshell
, 功能强大, 提供密钥的生成和管理, 会话建立和管理. 又或者安装Cygwin
.github
这里假设你只是经过ssh
到虚拟机来开发Linux
程序, 在xshell
和Cygwin
之间, 我我的推荐Cygwin
. 两个缘由: 1, xshell
未ssh
前提供的原生shell
是Windows
的虚拟DOS
, 你可能会在登陆先后变换shell
命令. 2, xshell
在有主题配色时, 登陆虚拟机并使用tmux
命令时, 会在面板间串色. A
面板使用Vim
, B
面板使用Bash
, 色彩老是互相影响. 这个问题很是恼火, 但多方查询没找到解决方法. 但Cygwin
也有不满意的地方, 其使用的mintty
功能太羸弱, 连基本的多标签都不支持.shell
Cygwin
提供了一个软件层, 用于Linux
系统API
到Windows
系统API
的翻译, 能提供最接近原生Linux
的体验. 不过, 由于增长了一层翻译, 也致使当安装软件过多时, 运行较大软件时, 会至关慢. 虽然, 你能够经过Cygwin
安装KDE
或Gnome
桌面, X11
框架, 但强烈不推荐.vim
在官网下载setup-x86_64.exe
, 运行, 在下载点选择时推荐163的, 速度很快. 在程序包选择时, 建议除了默认外, 只安装极少许你必须的包, 毕竟你主要的开发环境在虚拟机上. 提供ssh
工具和vim
编辑器是默认安装的.缓存
Cygwin
自己提供gcc
的程序包, 但若是你必定须要的话, 会发现它有三个版本, gcc
, cygwin-gcc
, mingw-gcc
. 它们有一点区别, gcc
编译的程序只能在Cygwin
环境下运行, mingw-gcc
编译的程序能够在Windows
环境下运行, cygwin-gcc
编译的程序须要cygwin.dll
库才能在Windows
下运行(印象中是这么个区别, 建议别趟这个坑).bash
安装好Cygwin
后, 如上一篇所述, cd
到项目目录, vagrant up
开启虚拟机, vagrant ssh
登陆虚拟机. Ctrl-D
退出虚拟机, vagrant halt
关闭虚拟机.框架
一个Cygwin
的包管理工具,可以使用命令行安装须要的程序包。工具主页是https://github.com/transcode-open/apt-cyg
.ssh
默认状况下, 当你想安装新的程序包, 运行以前下载的setup-x86_64.exe
, 在包选择界面选择, 再下载安装. 很是很是难以理解, 一个模拟Linux
环境的工具, 安装程序时却不能在自身环境中完成. 因而, 有这么个工具.编辑器
就使用体验来看, 从各个方面都不要指望它和apt-get
同等级好用。它安装时自动安装依赖包,但删除包时则没有处理无依赖的包。工具
lynx -source rawgit.com/transcode-open/apt-cyg/master/apt-cyg > apt-cyg install apt-cyg /bin
经常使用命令:
安装包:apt-cyg install pkgname
移除包:apt-cyg remove pkgname
更新包缓存:apt-cyg update
下载包:apt-cyg download pkgname
显示包信息:apt-cyg show pkgname
生产包依赖的树:apt-cyg depends pkgname
生成依赖包的树:apt-cyg rdepends pkgname
列出本地包:apt-cyg list [regexp]
列出全部包:apt-cyg listall [regexp]
显示指定类的全部包:apt-cyg category [Base|Devel|Ruby...]
搜索包含指定文件的本地包:apt-cyg search filepath
搜索包含指定文件的全部包:apt-cyg searchall filepath
指定源镜像:apt-cyg mirror [url | http://mirrors.163.com/cygwin/]
指定包下载路径:apt-cyg cache [dirpath]
若是你有多台机器, 每次都要重复安装一遍Cygwin
, 特别是每次都要选择相同的程序包, 是比较痛苦的. 所以, 确保安装好后, 包括你须要的各类软件, 将其制做成便携版, 可随处解压使用才是解决之道.
本地机器:
压缩打包安装目录
导出注册表:reg export HKLM\SOFTWARE\Cygwin abc.reg
另外一台机器:
解压缩安装目录
修改注册表相关根目录
导入注册表:reg import abc.reg
如何完整删除电脑上的Cygwin
, 是的, 总有这种须要.
删除下载包目录
中止服务: cygrunsrv -L, cygrunsrv -S, cygrunsrv -R
删除安装目录
删除注册表: reg delete HKLM\SOFTWARE\Cygwin /f
, reg delete HKCU\SOFTWARE\Cygwin /f
删除环境变量: PATH
, CYGWIN
Windows
的UAC
权限控制在某些时候仍是比较烦人的. 你可能须要运行一个特权命令, 而在图标上右击选择以管理员身份运行一个特权版的Cygwin
总感受很Low
, 且不一样的工做目录要来回切换也麻烦. 但cygwin
没有root
用户也没有sudo
这样的提权工具, 多方查找后, 这里能够近似实现一个.
新建脚本sudo,并添加到PATH路径中:
#!/usr/bin/bash cygstart --action=runas "$@"
若是须要运行特权命令,会弹出一个新的特权cygwin
窗口,运行命令后退出. 虽然, 感受也不怎么样好.