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

From bwHPC Wiki
Jump to navigation Jump to search
m (Tippfehler)
No edit summary
Line 5: Line 5:
== Dont's ==
== Dont's ==


* don't forget to test your changes before you log out
* don't forget to test your changes before you log out (log in on a second shell)
* don't put <code> module load </code> commands in .bashrc, modules may make changes that break the default system environment
* don't put <code> module load </code> 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
* don't put LD_PRELOAD or LIBRARY_PATH in your .bashrc, unless you know exactly what you're doing
Line 11: Line 11:


== Do's ==
== Do's ==
* make a copy of your .bashrc before making large changes

* '''test''' your changes to .bashrc before you log out
* '''test''' your changes to .bashrc before you log out
* add command aliases or bash functions in .bashrc - example: <code> alias l='ls -la' </code>
* add command aliases or bash functions in .bashrc - example: <code> alias l='ls -la' </code>

Revision as of 11:07, 5 November 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 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