The windows terminal (the user-interface around text-applications like cmd.exe) really sucks.
There is so much that the Unix-style terminals do that the windows terminal
There are two things you can change independently—your terminal emulator and your shell.
This will allow you to select text normally (instead of stupid rectangles). I favour Console2, which is fast, lightweight and reliable http://sourceforge.net/projects/console/
There's also ConEmu https://code.google.com/p/conemu-maximus5/.
There's also Mintty https://code.google.com/p/mintty/ (same terminal emulator that Putty uses). Mintty can't run interactive apps like nano
or vi
. Mintty can't run cmd
either, only Bash.
Whatever you choose, it's useful to add 'open console here' items to Windows Explorer context menu. Instructions at https://stackoverflow.com/a/17663556/284795
Clink improves cmd
, adding session history, and Bash-style autocomplete. https://code.google.com/p/clink/
The most reliable distribution of Bash for Windows is with MSysGit. It's very easy to install, and you get a free Git https://code.google.com/p/msysgit/
It's worthwhile at this point to explain the difference between MSys and Cygwin. MSys is a collection of apps painstakingly ported to the native win32 API, whereas Cygwin is an emulation layer that can run arbitrary Linux apps.
In my experience MSys is more comfortable, it interoperates better with Windows (in particular how it handles paths). Though Cygwin has more apps, and more recent.