Thanks for the encouragement. I know with DOS things made sense, and executable files had the .exe extension and I wrote a lot of batch files and manually edited the setup files... I think one was the config.sys and the other autoexec.bat. In dos you just type the name of the file to run in the command prompt. In linux I have to type sudo ./xxxxx. I'm not sure why yet all the extra typing. I'm getting better at it (very slowly) and I think I just need to stick with it a bit more before it starts to make sense.
In Linux, there are two aspects to keep in mind in trying to execute a file: Permissions, and Path.
On its own, Linux will search the directories in your PATH trying to find the file you wanted to execute. You can see what directories it's looking at in a colon-separated list:
echo $PATH
You can add other directories to your PATH, but we'll save that for another day
The next thing Linux needs is permission to eXecute the file. Permissions are (simplified) available to Read, Write, and/or eXecute by the User, a Group the user might be a member of, or All users.
ls -l ./*
rwxr--r-- someuser somegroup file_a
shows that "someuser" has permission to read, write, and execute "file_a" and anyone in group "somegroup" has permission to read it (but not write or execute it)
When you "sudo" (SuperUser Do) something, you're escalating your privileges to "superuser" or "root" privileges - which can do almost everything and isn't bound by the silly permissions problems I described above.
And when you specify the exact path to the file (./xxxx .. ie. "xxxx" in the current working directory), the PATH becomes irrelevant, too: no searching is needed because you've said exactly what file you want to refer to.
There are a number of alternative ways to specify what permissions to give a particular file. One simple way is:
chmod u+x somefile
which will ADD ("+") eXecute permissions for the *u*ser. It gets a bit more complicated if you don't have permissions to change the file permissions - in effect you're *w*riting to the directory the file is in. We'll save that complexity for another day
There are additional steps for Linux to determine what program should be used to execute a particular file - it starts off with the Linux "shell" (interpreter), but can be handed off immediately with special notation in the first characters in the first line of the file. Again, more for another day
I hope this helps give a bit more depth to understanding Linux