If you must, or prefer to use Windows, here's a few tips to get decent unix integration with Cygwin.
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.
Good question, I don't know how to use this without using the X (non native windows) version of RXVT.
Just use the openssh install, down with putty and it's confusing setting dialog and funny fonts.
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).
lib/main.php:944: Notice: PageInfo: Cannot find action page