Personally my view is that if you really want to learn the Unix commandline, you would do better to run Linux on a PC and do everything from the commandline. If you don't know how to do something, look it up and figure out how to do it. This takes lots of work and requires considerable stamina, but you'll learn it. Ideally you want to think in Unix. (Okay, I'm weird.)
It's sort of an immersion technique, but it's how I learned Unix. In six months, I went from thinking I knew something about Unix (which I didn't) to rolling my own working custom kernel. In the Linux world, you have lots of books to support you. Taking cwa's advice one step further, O'Reilly books on Linux and Unix are generally excellent.
The OS X commandline environment is somewhat limited imho. Frankly, the benefit of Unix to the typical Mac user is stability, not the full development environment. There *are* times I've used vi on my Mac, but that's because I've used it alot in Linux to know how it can be helpful here. Ha! I just used sed yesterday to edit a file, and it worked like a champ.