Scripting can be used to accomplish just about everything that any gui can do, and almost always, better. This is why it is a good idea to learn how to use the cli (command line interface), as soon as you have the basic idea of what you want and need to do.

Complete programs can be made by using longer, more complicated scripts, in a text file. But the term complicated may be too strong of a word, so don't let it scare you. Scripting can be little more than 'macro' programming, or as intricate as you would like. The main idea with scripting, is to save you (or the user) from doing the same thing over and over.

Scripts can be automated when the computer starts or any other time during the day.

Various popular and powerful languages take full advantage of scripting, like Perl, Python, and Ruby, just to name a brief few.

Some of the most useful and handy commands in basic command line/scripting, are the following:

sed - a program that can be used on the command line as well, and therefore in a script, is one of the most powerful programs of all. Reason being, it can filter data from file(s), without actually opening up any special other programs (gui's, etc).

man - the manual of what ever program or command that you are trying to utilize.

mount - lists the details of mounted partitions on your various media.

ls - lists the contents of directories.

cp - copies files and directories.

du - shows disk usage.

Many people find out, after working with gui programs , the alternative -- of taking the time to develop a script for their task (eg. backing up their system, properly), is not only the best way to do things, but the only way.