i'm going to just enter some things that may or may not have been cleared up already
absolute vs. relative paths
when you use a leading forward slash in a path it is interpreted from the root of the disk, if you leave it off the path is relative to your current directory, for example:
kraus@darkstar:~$ cd documents/pr0n/
kraus@darkstar:~/documents/pr0n$ echo is the same as entering
is the same as entering
kraus@darkstar:~/documents/pr0n$ cd /home/kraus/documents/pr0n/
and scripts
kraus@darkstar:~/documents/pr0n$ echo running scripts depends of the script
running scripts depends of the script
kraus@darkstar:~/documents/pr0n$ cd ~/tmp
btw ~/ is a shortcut to your home directory when used in a path, type cd w/o any arguments to go there too.
kraus@darkstar:~/tmp$ ls -l bgbuddy
-rwxr-xr-x 1 kraus kraus 3795 Apr 14 06:23 bgbuddy*
if you look at the permissions
-rwxr-xr-x you see that this script is set as executable. this is generally the case. you can call executable files like so
kraus@darkstar:~/tmp$ ./bgbuddy -fb -st /home/kraus/documents/wallpaper/
kraus@darkstar:~/tmp$ /home/kraus/tmp/bgbuddy -fb -st /home/kraus/documents/wallpaper/
both of these formats do the same thing. you can use ./ when the script you want to run is in your current (working) directory. calling a script using the full path allows you to run the script from any working directory. keep in mind that running a script from a different directory may cause problems, especially if the script depends on files in it's directory (that may be confusing). one more thing about scripts, they can also be called using the interpreter they are written in. for example, a script written in perl can be called with
perl script.PL. bash scripts are quite common and can be called with
sh script.sh. This is probably a lot more than you wanted to know but i'm really fucking bored.