Understanding Path, Shell, and Enviroment Variables in MacOS/Linux