One benefit of working from a terminal emulator is the ability to chain commands together in a way that would be difficult to do efficiently from a GUI. For example, the following snippet allows for "on the fly" compression and transfer of a local directory to a remote location:

tar --gzip --create --verbose --file - foobar | ssh foo@foobarserver "cat > /path/to/foobar/foobar.tgz"

Here tar calls the gzip utility to create an archive of the the "foobar" directory, and then pipes (|) the compressed data over a secure shell (ssh) connection. As the data reaches the remote location, it is fed to cat and redirected > to the tarball: "foobar.tgz".

What's nice about this item is that you don't need to tar your data in its entirety before you transfer it; rather, as your data is compressed, it is transferred, then appended, to the remote archive in one fell swoop. This is particularly useful if your local node is running low on disk space and you want to free up space in a hurry. Try doing that with your GUI.

Cheers.