NERSCPowering Scientific Discovery Since 1974

NERSC User Environment

Home Directories, Shells and Dotfiles

All NERSC systems use global home directories, which are are pre-populated with shell initialization files (also known as dotfiles) for all available shells.  NERSC fully supports bash, csh, and tcsh as login shells.  Other shells (ksh, sh, and zsh) are also available.  The default shell at NERSC is csh.


The "standard" dotfiles are symbolic links to read-only files that NERSC controls. For each standard dotfile, there is a user-writable ".ext" file. For example, C-shell users are generally concerned with the files .login and .cshrc, which are read-only at NERSC. These users should put their customizations in .login.ext and .cshrc.ext.

Users may have certain customizations that are appropriate for one NERSC platform, but not for others. This can be accomplished by testing the value of the environment variable $NERSC_HOST. For example, on Edison the default programming environment is Intel.  A C-shell user who wants to use the GNU programming environment should include the following module command in their .cshrc.ext file:

if ($NERSC_HOST == "edison") then 
module swap PrgEnv-intel PrgEnv-gnu

Occassionally, a user will accidentally delete the symbolic links to the standard dotfiles, or otherwise damage the dotfiles to the point that it becomes difficult to do anything. In this case, the user should run the command /usr/common/usg/bin/fixdots. This command will recreate the original dotfile configuration, after first saving the current configuration in the directory $HOME/KeepDots.timestamp, where timestamp is a string that includes the current date and time. After running fixdots, the user should carefully incorporate the saved customizations into the newly-created .ext files.

Changing Your Default Login Shell

Use NIM to to change your default login shell.  Login, then select Change Shell from the Actions pull-down menu.

Using Modules to Manage Access to Software

Access to much NERSC software is provided by the modules environment.  Simply "load'' and "unload'' modules for the software you need.