On Windows 10, I use babun along with a Vagrant VM for terminal-based development.
babun is a Cygwin distribution that's actually configured nicely out of the box with oh-my-zsh, etc. It comes with a very pretty terminal, a package manager, and more. That said, it's still Cygwin, which means I try to avoid doing complex, heavy-duty development in it.
For that, I just spin up a Vagrant VM. It's insanely easy.