How do I become proficient with the terminal?
===

As a programming novice, I often run into trouble when trying to install packages, use virtualenv, and basically do anything even mildly complex using the command line.

What are some good references out there to help me UNDERSTAND things like my path, environment, shell scripts, etc?

Basically, I'm tired of copying and pasting.  I want to really understand what's going on.

Thanks!