Las variables de entorno son aquellas variables que almacenan la información del entorno actual (OS y User_Session). Estas variables ayudan a los procesos a acceder a datos comunes compartidos o valores estáticos. Por ejemplo, un proceso padre quiere pasar algunos valores estáticos requeridos por el proceso hijo para su ejecución, entonces una de las formas es establecer las variables de entorno con valores y entonces los procesos hijos pueden acceder a los valores fácilmente. Los procesos pueden utilizar estas variables para su ejecución. Las diferentes variables de entorno son PATH, HOME, PWD, LANG, TERM, SHELL, etc. Intente ejecutar env o printenv en su terminal para ver todas las variables de entorno.
Variable de ruta: No es más que una variable de entorno más(como puedes en la lista de variables de entorno). Generalmente, almacena las rutas de los diferentes directorios donde existen tus archivos ejecutables y binarios. Cada vez que escribes un comando en la terminal sin su ruta completa, el shell intenta encontrar la definición del comando en todas las rutas mencionadas en la variable PATH. Por ejemplo, quiero ejecutar un programa java, así que para ejecutarlo tengo que escribir un comando como /usr/bin/java MyJavaMainClass. Cada vez que tengo que ejecutar un programa java, tengo que escribir /usr/bin/java, de lo contrario el shell no será capaz de encontrar el comando java. Así que para evitar esto establecemos el PATH a /usr/bin/ así que ahora sólo tienes que escribir java para su ejecución. Para establecer la variable PATH, simplemente escriba PATH=:/ruta/directorio.