Actually, one should not put PATH exports in bashrc files. In the .bash_profile is more appropriate. In any case to answer your question, the dot means "local directory", the $PATH expands to the current path, and $M2_HOME/bin expands to the bin directory in whatever directory the M2_HOME environment happens to point to. So, when PATH is exported, and you tell the computer to run a command from a command line window, it will first look in the current directory, then in the previous PATH, and finally in $M2_HOME/bin. So let's say that PATH was "/usr/bin:/usr/local/bin", and M2_HOME is "/home/m2_home. The new PATH would be ".:/usr/bin:/usr/local/bin:/home/m2_home/bin", so if I said to execute the command "foobar", the system would look for the executable file "foobar" in my current directory, then in /usr/bin, then in /usr/local/bin, and finally in /home/m2_home/bin before giving up.