Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Note that CSH is not available. If you are still using it, please move to a supported shell.

Tip
titleChanging your shell

If you wish to change the your default shell you must do it from ECGATE

No Format
user@ecgb11:~> changesh
Enter your user id: user

Your current shell is: /bin/bash
Enter new shell [/bin/ksh, /bin/bash]: 

, please let us know via the ECMWF Support Portal and we will implement that change for you.

Once updated, note the change The change may take a few minutes to synchronise, and will only affect new sessions opened after it is comes into effect.

Shell initialisation and configuration files

By default, none of the following files may be present on your account, and you will get the default settings for the system. However, you may want to customise your environment to add new variables, functions or aliases to your sessions or jobs.

FileWhen is it is sourced?Who sources it?What is it for?
$HOME/.profile
each login and job executionBash and kshSuitable for your own login session settings (e.g. PATH).
$HOME/.bash_profile
each bash startup login and job executionBash only

Suitable for your own login session settings that must only run once for the session or job (e.g. PATH).

It overrides .profile if present

$HOME/.bashrc
each bash startup and job executioninteractive non-login shellBash only

Suitable for your own

settings

functions and aliases to load for

all kinds of sessions, including

interactive non-login sessions.

It is not loaded automatically on login sessions

$HOME/.bash_logout
each bash exit and end of jobBash onlySuitable for your own cleanup settings at the end of the session or job
$HOME/.kshrc
each ksh startup login and job executionksh onlySuitable for your own settings to load for interactive shells


Tip
titleSuggested settings for

...

Bash users

If bash is your login shell and you would like to customise your environment without having to split content between ~/.bash_profile and ~/.bashrc, you could do the following:

  • Make sure your ~/.bash_profile contains the following snippet:

    Code Block
    languagebash
    title~/.bash_profile
    if [ -f ~/.bashrc ]; then
        . ~/.bashrc
    fi


  • Add in your ~/.bashrc all your environment variable definitions, functions and aliases.