.bashrc Do's and Don'ts: Difference between revisions

From bwHPC Wiki
Jump to navigation Jump to search
No edit summary
No edit summary
Line 1: Line 1:
.bashrc and .profiles are files that are sourced when you log in.
.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 by adding lines to these files, but you can also make mistakes that make your life or the life of the cluster teams harder.
You can add commands that you want to run every time by adding lines to these files, but you can also make mistakes that make your life or the life of the cluster teams harder.

Revision as of 14:40, 8 October 2024

.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 by adding lines to these files, but you can also make mistakes that make your life or the life of the cluster teams harder.

Donts's

  • don't forget to test your changes before you log out
  • 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 except if you know exactly what you're doing

Do's

  • 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