The scripting/programing capabilities aren't as powerful as Perl or similar languages, but often it can do the job just as well, and sometimes better.
Some quick ones for those not in the know:
Mouses have some limited functionality in bash. You can select some text with the left mouse button and paste with the middle button. Makes life easy.
shift-page up/down will allow you to scroll through previous lines of output text.
up/down arrow will allow you to recall previous commands (try 'history'

left/right arrows allows you to move through the command you are typing to edit mistakes etc.
hitting 'TAB' will either autocomplete the command or filename you are typing, or if there are multiple completions possible it will appear to do nothing - hitting it again will provide a list of possible completions.
That should conclude the more common shortcuts.
Stacking commands - ie typing a load of commands that you want to run one after the other, or all at once.
ALL TOGETHER NOW
'startx' will start the X server and give you pretty graphics. If you go back to the terminal that X was launched from (ctrl-alt-F1) you'll see it is still busy (ctrl-alt-F7 should get back to X).
'startx&' will start X, and instantly give you your terminal back for other use.
'startx& updatedb' will start X and at the same time start updating the system's database of files (use 'locate filename' to quickly find a file BTW, provided it is installed).
You'll notice when running 'startx&' there is a line printed with two separate numbers, these are 1) job id 2) process id. They aren't important right now.
'startx& updatedb' will result in the terminal being kept busy with updatedb running.
'startx& updatedb&' does exactly what you'd expect.
ORDERLY QUEUE PLEASE
'startx;' is exactly the same as 'startx'. The advantage comes in by allowing you to provide a first come, first serve list of commands.
'startx; updatedb' would start X up, do nothing whilst X is running, then start running updatedb as soon as you kill X. A better way of testing this is with the following:
'sleep 3; echo "Hello World" ' - sleep just tells the PC to sleep idly for a given number of seconds. echo just prints what you say to the terminal. Compare this to
'sleep 3& echo "Hello World" '
ACT ONLY ON SUCCESS
Sometimes you want the second command to run ONLY if the first command finished without error. This is possible with the double ampersand.
'mkdir ~/Pi_Rocks && echo "Directory Created" ' will create a directory called Pi_Rocks in the user's home directory (~ is shorthand for /home/username). Once the directory has been successfully created it prints 'Directory Created' to the terminal. Run it again and see what happens. You can't create a directory that already exists remember.
You aren't just limited to two commands in the list. Stack up as many as you need.
The above is a quick introduction to bash, and is far from complete. It provides some shortcuts to help speed up your day to day use on the command line and shows that there is potential to do lots more than people would think coming over from the good ol' days of DOS.
Later I'll cover how to bounce data about and between programs. Handling error outputs from programs (redirect to special files), and how to make sure that logging out doesn't cause the program you started running to die. All those commands people suggest to fix machines should be explained here.
Sometime after that we'll actually start looking at the programming under bash basics.
There is lots to learn.