I'd not survive on Windows without CygWin. But Crlf issues are a problem with bash. To fix these, set SHELLOPTS in your user environment variables to
SHELLOPTS=braceexpand:emacs:hashall:histexpand:history:igncr:interactive-comments:monitor

Cygwin can make a mess of permissions, since permissions don't work in Windows in the same way as *nix. If all your cygwin activity happens within the C:\cygwin64\ space there is no problem, but if you routinely use cygwin outside of there (e.g. in your Windows home foloder), you want to edit /etc/fstab and insert noacl as below:

none /cygdrive cygdrive binary,posix=0,user,noacl 0 0

To have an equivalent of sudo

#!/usr/bin/bash
cygstart --action=runas "$@"
Importantly, sudo bash gets you an bash with elevated privileges, which can be useful for running a lot of installers without multiple UAC alerts.