.bashrc Do's and Don'ts

From bwHPC Wiki
Revision as of 11:07, 5 November 2024 by K Siegmund (talk | contribs)
Jump to navigation Jump to search

.bashrc and .profiles are files that are sourced when you log in, they set some important variables that make your shell function at a specific site setup.

You can add commands that you want to run every time at login and when starting a job by adding lines to these files, but you can also make mistakes that make your life or the life of the cluster teams harder.

Dont's

  • don't forget to test your changes before you log out (log in on a second shell)
  • don't put module load commands in .bashrc, modules may make changes that break the default system environment
  • don't put LD_PRELOAD or LIBRARY_PATH in your .bashrc, unless you know exactly what you're doing

Do's

  • make a copy of your .bashrc before making large changes
  • test your changes to .bashrc before you log out
  • add command aliases or bash functions in .bashrc - example: alias l='ls -la'
  • add a local ~/bin or similar to $PATH if needed
  • improve your terminal command history experience:
shopt -s histappend                    # append to the history file, don't overwrite it
shopt -s direxpand                     # expand dirs before trying to expand filenames
HISTSIZE=1000000                       # number of commands stored in one terminal session
HISTFILESIZE=20000000                  # number of commmands stored in file
HISTFILE="$HOME"/.bash_history_$USER   # prevent file truncation by bash sessions that did not read in .bashrc
PROMPT_COMMAND="history -a"            # save history after every command
HISTCONTROL=ignoreboth:erasedups       # dont store duplicates and ignore lines starting with white space
HISTIGNORE="?:??"                      # dont store one and two letter commands