Live CD
I'd suggest first taking Live CD distributions for a spin. This will give you enough of a taste to start groping your way around the system without risk to your configuration.
Once you've got a rough idea of where things are and what they do, you can install and start digging into the guts of whatever OS you choose.
It sounds like you're just getting started, so I would second Ubuntu. I've never used it myself, but it appears to have all the nice shiny stuff that folks expect. *shrug* I use Open/FreeBSD with a CLI on my *nix boxes, myself, and have been partial to FreeBSD since about 2000-2001. It does what I need (servers, jailed virtual boxes, services, etc.) and I really like the fact that it doesn't hog up the memory with pretty pictures. I run headless, so pretty pictures aren't useful.
The free OS world has come a long way since I started in 1995 with Slackware, and there are (of course) a ton more resources more readily available now than then.
Some terminal commands you'll benefit from:
- ls - will list files in the current directory.
- ls -al (typically aliased ll) - list all files in the current directory, including dot-files.
- cd - will change directory: cd /mnt/cdrom will change directory to (in this case) the FreeBSD mount-point for a CD ROM drive.
- cat - will print a file to screen. You can use it thusly--cat <filename> | more to go through a file one screen at a time.
- file takes a file name (remember, in the *nix world, everything is a file) and reports the type (executable, text file, etc.)
- touch - takes a file name as an argument, and will either update the access time on an existing file, or can be used to create a new blank file. I like to do a touch tempfile to create a new file called tempfile.
- man - short for "manual." Takes a command name as an argument and will give you more information than you could ever use.
- find - can be used to find files. I typically use it like this: find / -name "Dissertation.txt" >> ~/results.txt & This will look at the entire slice mounted at / (root) and will recursively look for a file called "Dissertation.txt" Results will be in my home directory under "results.txt" and I'll have control of the shell while the process works in the background. If I wanted to check up on the progress, I could do a tail -f ~/results.txt to see real-time output.