在Windows(Cygwin)上安装PYANG

pyang是一个Python编写的,用来处理IETF YANG模型的工具,可以用来模型验证,以及格式转化等等。 由于pyang有一些依赖,并且安...

September 25, 2019

Windows下使用pageant为cygwin提供ssh密钥服务

如果ssh-gen生成私钥的时候设置了口令,那么每次验证的时候都需要输入口令,有点麻烦。一个办法是使用ssh-agent启动一个密钥服务,然...

September 1, 2019

在Cygwin下使用Zsh

Cygwin的默认Shell是bash,如果要把它换成更有交互性的zsh应该怎么配置呢? ...

February 21, 2018

在Cygwin上安装MySQL,Apache和PHP

想在自己的电脑上运行一些Web服务供自己使用的话,MySQL,Apache和PHP(简称MAP)组合是一个很好的选择。如果你的工作环境和我一样,是Windows+Cygwin(一个在Windows上的模拟Linux的套件),可能也会觉得在Cygwin上安装和配置MAP是一个很好的选择。本文记录了在Cygwin上安装MAP的过程以及一些问题。 ...

April 23, 2017

Cygwin下搭建WordPress插件的PHPUnit测试环境

推荐用apt-cyg来安装Cygwin下面的软件包。 ...

July 29, 2015

像Debian Apt-Get那样管理Cygwin安装包

APT-GET是Debian Linux的包管理用具,已被千千万万的Linux用户所熟知。Cygwin号称要在Windows上提供Linux的体验,却一直没有类似的包管理工具,未免有点遗憾。 ...

July 27, 2015

tmux man-page search highlighting in Cygwin/Mintty

Inspired by the question tmux-man-page-search-highlightingon StackOverflow, I found the solution for this problem from tmux faq, but I applied it with a little tweak (The original solution will cause coloring problems in ls output for my Cygwin/Mintty). Make sure you have ncurses package installed in Cygwin! The result can be found at .terminfo/73/screen-256color The final step is to set the default-terminal to screen-256color in your .tmux.conf Cheers.

January 14, 2015

Cygwin Tmux always creates new windows in HOME directory

Tmux is a convenient terminal multiplexer, not until recently Cygwin has packed Tmux in its distribution source, now we can install Tmux from setup-x86{_64}.exe, the package installer provided by Cygwin. One problem I experienced while using tmux is that: every time I created a new window in Tmux, the working directory is always HOME, even if I specified the startup directory in the option: Having examined this problem for a while, I can now tell what is wrong....

October 8, 2014

在Cygwin+Mintty下跑Windows的cmd控制台程序

众所周知,Windows自带的控制台程序cmd.exe对用户不是非常友好,跟Unix下的一系列终端以及shell相比,功能和易用性都相去甚远。 有几个开源项目致力于提高cmd.exe的用户体验: clink为cmd.exe添加向bash那样的命令行编辑和补全功能。 console2是另一款功能强大的控制台模拟器。 这些模拟器在cmd.exe的基础上添加了多标签页支持、字体设置、拷贝复制、背景设置等等功能。虽然这些改进十分贴心,但大部分都只是界面上的修修改改,并没有将Unix的终端体验完全带入Windows。 要达到Unix上终端的顺畅体验,是需要靠一大堆Unix应用程序支持的。在Windows上,能够基本提供Unix体验的,目前只有Cygwin,Cygwin终端模拟器Mintty也是非常出色,提供强大的功能。 但是Cygwin有一个致命弱点,就是性能太差。整个Unix的编程接口是Cygwin在应用程序级别模拟出来的,而非在内核直接实现。这导致在使用上能明显感觉程序运行速度较慢,特别是涉及文件系统操作的时候。 比如用Cygwin跑一个Python的Web应用,往往这个Web应用需要的启动时间比在Unix下要长久许多。为了克服这个缺点,我们可能希望用Windows原生的Python,而不是用Cygwin下的Python来运行这个Web应用。通常我的做法是在mintty终端里面直接运行cmd.exe,启动控制台,再运行Python,这样可以获得一部分性能的提升。 遗憾的是Mintty对cmd控制台的支持有很多限制,例如无法使用tab补全、命令行历史无法访问等等。一个解决办法是打开新窗口运行cmd.exe: 如果使用Tmux和Screen这些终端复用工具,切换Windows窗口这个操作便显得十分麻烦,影响工作流。那有什么办法可以让Mintty对cmd控制台支持得更好呢,Minty的问题跟踪列表里面有一个讨论Issue 56 Improve support for native console programs,里面提供了一个解决方案:使用winpty来为控制台程序作代理。winpty提供了一个程序console.exe: 这样,cmd控制台是不是运行得正常多了呢!但还有些小问题没有解决,比如上下左右键无法使用。使用可以解决这个问题,clink模拟了bash的命令行编辑功能,可以使用emacs的键绑定来前后移动: 详细的键绑定列表请看库readline的文档。clink还支持vi模式的键绑定。如果使用可执行文件安装的clink,可以在%USERPROFILE%\AppData\Local\clink目录下创建一个clink_inputrc文件,内容是: 如果使直接解压zip文件安装的clink,clink_inputrc要放在clink目录下面的profile文件夹中。 其他: 为了向Posix兼容Windows自身也提供了类Unix的编程接口,称作Subsystem for UNIX-based Applications (SUA)。 shell-terminal提供了和Winpty的类似功能。

September 22, 2014

Cygwin上使用ssh-agent

你想在Cygwin下用ssh的公钥私钥的验证方式来登录服务器。 首先你得用ssh-keygen在~/.ssh目录下面生成了一对公钥和私钥:id_rsa.pub和id_rsa。然后把id_rsa.pub的内容拷到服务器的~/.ssh/authorized_keys文件中,之后登录该服务器的时候,ssh就会优先使用公钥私钥验证了。 可是你对私钥设了一个非常强劲的口令,结果每次用ssh登录的时候都要需要验证这个口令,每次输入都非常麻烦!ssh-agent就是用来解决这个问题的!我们只输入一次口令后,ssh-agent将口令缓存下来,以后每次登录的时候就不需要重复输入了!这里有详细介绍ssh-agent的使用。 ssh-agent在Cygwin下面的使用可以参考这篇文章。配置每次打开mintty的时候自动运行ssh-agent, 把下面的代码加入~/.bash_profile: 关于ssh-agent-forwarding 如果你维护的服务器非常多,经常需要登录到一个服务器后,再从这个服务器登录到其它服务器,ssh-agent的forwarding功能就变得非常有用了。只要你把公钥都拷贝到这些服务器上,ssh-agent可以让你在这些服务器间畅通无阻,不用再输入密码。 Agent Forwarding功能需要在.ssh/config文件中开启: 上面的配置只对example.com生效,下面的配置可以全面生效: 参考Github的帮助或者unixwiz上详尽的解释。

July 3, 2014