1) This isn't a UNIX thing, it really depends on your shell. bash on Windows would perform the same.
2) It will be the one first in your
PATH. The shell has no idea what a "system path" vs. a "user path" is. It's all one
3) Specifically for bash (again, not UNIX, but bash) there is a hashing mechanism to speed up lookup of commands. If you type, say,
ls, it will look for
ls in the command hash. If the bash shell finds
ls in the hash, it will run the one in the hash. So, if you ran
/bin/ls was the first in your
PATH, it would hash /bin/ls. Now, even if you had a
$HOME/bin was first in your
PATH, it would still find it in the hash, and run
So the shell will use whatever is first in PATH, unless it's overridden by a command path cache (called the
hash in bash).