Penguin

If you must, or prefer to use Windows, here's a few tips to get decent unix integration with Cygwin.

Shell:

The standard Cygwin shell is a bit boring, I prefer using the native Win32 rxvt as follows.

Create a shortcut with:

C:\cygwin\bin\rxvt.exe -sl 10000 -fn 14 -fg '#F8F8F8' -bg black -e /bin/bash -l

This will give you 10000 lines of scrollback, grey on black and a decent shell setup properly.

UTF-8:

Good question, I don't know how to use this without using the X (non native windows) version of RXVT.

SSH:

Just use the openssh install, down with putty and it's confusing setting dialog and funny fonts.

X Server:

Xming is a nicer version of the X server that comes with cygwin, it's free and integrates nicely with the systray etc.

The key I found when using Cygwin SSH X-Forwarding, is that it will try to use a unix socket, if the DISPLAY variable doesn't have a hostname in it.

The fix is simple: <start Xming>

DISPLAY=localhost:0  ssh -X some.server.org

If you don't, it'll fail with something like:

[you@someserver~]$ xeyes
connect /tmp/.X11-unix/X0: Connection refused
X connection to localhost:10.0 broken (explicit kill or server shutdown).

Apt-get:

There are a couple of tools to do this, cyg-apt and apt-cyg. Both have different bugs and seem to be relatively unmaintained .. shame.