1. What exactly is Terminal? Is this the equivalent of opening DOS in windows and running executables?
Terminal (or any other terminal program such as iTerm) exposes the Unix underpinnings of Mac OS X. It enables you to do a number of things that are not accessible via the GUI. For example, it seems the Disk Utility program is actually a GUI wrapping the 'hdiutil' command. There are a great deal of things that you can do with hdiutil in the terminal that are not available in Disk Utility.
It also enables access to many of the projects developed for BSD and especially Linux. The MacPorts project and Fink maintain a repository of osx compatible ports of many of these software packages, and make it easy to install and update these packages.
2. Is there some sort of tutorial or "dummies 101" to instruct me on the basics of using Terminal?
I would recommend using the default shell, bash. When starting out, the different shells don't really matter much, but I think there are a lot of good features when you become more advanced. There are a number of tutorials on the web for using bash.
Once you've gone through the tutorials a bit, I recommend two types of books-- a book on bash such as the O'Reilley book which provides details on more advanced features, and a book on shell scripting (I used the SAMS book "Teach Yourself Shell Scripting in 24 Hours"). It's good to have a couple books for reference, especially when you want to accomplish something that requires features you haven't used before.
3. What are some common/generic scenarios in which I would be able to apply the use of Terminal (example, I saw a post earlier about typing a command to erase something from the trash bin that wouldn't go away normally)?
There are a few things, like getting rid of files that are stuck in the trash, where it can be useful. Also anything you learn how to do, can also be done on a remote machine without having to setup something like VNC. This can come in handy when a process freezes that impacts the interface. You can log in remotely from a different computer and kill the problem process. The most significant benefits, however, come from the vast array of utilities and programs now available and the ability to create scripts.
When I was writing my dissertation, I had a script that would execute twice a day. It would check to see if any of the files had changed in my dissertation, and if so, would create a compressed archive and upload it to an offsite server for backup.
4. Are there any other tips/advice you can offer me on using Terminal? Such as..."never use it for this" or "it's a dangerous app to use if you type the wrong thing in it", etc.
Install the developer tools and X11, if you haven't already. They are necessary when using MacPorts or fink.
After going through a basic tutorial, think of something that you want to be able to do, even if it can be accomplished with the GUI, like my backup example. It is nice to have a clear task when you are learning. Once you accomplish it, pick another.
Eventually, you will want to take advantage of the shortcut features (e.g. aliases and functions). Don't alias destructive commands to themselves. Here's an example: The `rm` command deletes files. If you type `rm -i <someFile>` it gives you asks you for confirmation before deleting a file. A bad habit is to make an alias so that when you type `rm` it actually executes `rm -i`. The reason is that you will get so used to it, that when you are in a different setting, like a different account or a different machine, you will forget that it isn't setup that way, and accidentally delete things you don't intend. A better way would be to alias `rm -i` to `rmi`.
Another tip involves the use of 'globbing' with a destructive command. It's a great thing, but you have to be careful. Let's say I have five files, (file1, file2, ...). I can use a command like `rm file*` to delete all of those files. However, * can represent anything, so if I also have files, fileBlue,fileRed..., it will delete them too. If I'm working with important files or with complicated globs, I'll often test a glob using a command like `du` which displays the size of a file. If a file shows up that I don't want to delete, I'll refine the glob.
Good luck,
crackpip