# Environment and Modules ### Environment Customization After logging in, you may want to configure the environment. Write your preferred path definitions, aliases, functions and module loads in the .bashrc file ```bash # ./bashrc # Source global definitions if [ -f /etc/bashrc ]; then . /etc/bashrc fi # User specific aliases and functions alias qs='qstat -a' module load PrgEnv-gnu # Display information to standard output - only in interactive ssh session if [ -n "$SSH_TTY" ] then module list # Display loaded modules fi ``` !!! Note "Note" Do not run commands outputting to standard output (echo, module list, etc) in .bashrc for non-interactive SSH sessions. It breaks fundamental functionality (scp, PBS) of your account! Conside utilization of SSH session interactivity for such commands as stated in the previous example. ### Application Modules In order to configure your shell for running particular application on Anselm we use Module package interface. !!! Note "Note" The modules set up the application paths, library paths and environment variables for running particular application. We have also second modules repository. This modules repository is created using tool called EasyBuild. On Salomon cluster, all modules will be build by this tool. If you want to use software from this modules repository, please follow instructions in section [Application Modules Path Expansion](environment-and-modules/#EasyBuild). The modules may be loaded, unloaded and switched, according to momentary needs. To check available modules use ```bash $ module avail ``` To load a module, for example the octave module use ```bash $ module load octave ``` loading the octave module will set up paths and environment variables of your active shell such that you are ready to run the octave software To check loaded modules use ```bash $ module list ``` To unload a module, for example the octave module use ```bash $ module unload octave ``` Learn more on modules by reading the module man page ```bash $ man module ``` Following modules set up the development environment PrgEnv-gnu sets up the GNU development environment in conjunction with the bullx MPI library PrgEnv-intel sets up the INTEL development environment in conjunction with the Intel MPI library ### Application Modules Path Expansion All application modules on Salomon cluster (and further) will be build using tool called [EasyBuild](http://hpcugent.github.io/easybuild/ "EasyBuild"). In case that you want to use some applications that are build by EasyBuild already, you have to modify your MODULEPATH environment variable. ```bash export MODULEPATH=$MODULEPATH:/apps/easybuild/modules/all/ ``` This command expands your searched paths to modules. You can also add this command to the .bashrc file to expand paths permanently. After this command, you can use same commands to list/add/remove modules as is described above.