Today, I'd recommend working through Linux From Scratch. You'll develop a rich understanding of how a UNIX-like OS fits together, including a fair bit of shell functionality: http://www.linuxfromscratch.org/lfs/
My favourite dead-tree UNIX book would be UNIX Power Tools, 3rd Edition (http://www.amazon.com/Power-Tools-Third-Shelley-Powers/dp/05...). It may be a while before it's a truly valuable resource, but keep it in mind.
The one thing you must do is to embrace the Unix way of doing things. Learn the basic command-line tools and use them daily. Learn to use Emacs, because the same shortcuts are available in the shell.
This book is great btw: Unix Power Tools (http://amzn.to/Klexhf)
Another thing you have to realize is that Unix was built for polyglots. Many Windows developers usually stay within the walls of .NET, but on Unix that's a mistake. Learn Java, learn a good scripting language (I recommend Ruby because it is great for scripting, has a thriving community and can also run on top of the JVM), learn C along with the POSIX APIs.
Eclipse or IntelliJ IDEA are good substitutes for Visual Studio, however I work with Emacs, because in dynamic languages the APIs and workflow are optimized for non-IDE usage and an IDE just stays in my way. I still use an IDE for Java, but that's only because in Java I can't drop to a REPL.
Also, Linux is great for your desktop, but only if you have hardware that's compatible with it. So be careful when picking hardware and do some reading first, otherwise it will ruin your mood. OS X is also an option btw, but I wouldn't make long-term commitments to this platform because Apple is even worse than Microsoft in some regards.
[1] http://www.amazon.com/Unix-Power-Tools-Third-Edition/dp/0596...