What is bashrc and Customizing the Terminal

Last Updated on

The purpose of a .bashrc file is to provide a place where you can set up variables, functions and aliases, define your (PS1) prompt and define other settings that you want to use every start you open a new terminal window.

1
vi ~/.bashrc

It works by being run each time you open up a new terminal, window or pane. An example bashrc file:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
HISTCONTROL=ignoreboth:erasedups HISTSIZE=100000 HISTFILESIZE=200000
ls --color=al > /dev/null 2>&1 && alias ls='ls -F --color=al' || alias ls='ls -G'
md () { [ $# = 1 ] && mkdir -p "$@" && cd "$@" || echo "Error - no directory passed!"; }
git_branch () { git branch 2> /dev/null | sed -e '/^[^*]/d' -e 's/* \(.*\)/\1/'; }
HOST='\033[02;36m\]\h'; HOST=' '$HOST
TIME='\033[01;31m\]\t \033[01;32m\]'
LOCATION=' \033[01;34m\]`pwd | sed "s#\(/[^/]\{1,\}/[^/]\{1,\}/[^/]\{1,\}/\).*\(/[^/]\{1,\}/[^/]\{1,\}\)/\{0,1\}#\1_\2#g"`'
BRANCH=' \033[00;33m\]$(git_branch)\[\033[00m\]\n\$ '
PS1=$TIME$USER$HOST$LOCATION$BRANCH
PS2='\[\033[01;36m\]>'
set -o vi # vi at command line
export EDITOR=vim
test -f ~/.bash_aliases && . $_
test -f ~/.git-completion.bash && . $_
test -s ~/.autojump/etc/profile.d/autojump && . $_
[ ${BASH_VERSINFO[0]} -ge 4 ] && shopt -s autocd
[ -f /etc/bash_completion ] && ! shopt -oq posix && . /etc/bash_completion
[ -z $TMUX ] && export TERM=xterm-256color && exec tmux
export PATH="$PATH:$HOME/.rvm/bin" # Add RVM to PATH for scripting
[[ -s "$HOME/.rvm/scripts/rvm" ]] && source "$home/.rvm/scripts/rvm"

1. Set up my history file to ignore duplicates and be much larger than the default.
2. Color option for ls depending on if you are using linux or OSX
3. Function “md” to make and cd into a directory with one command
4. Find the current git branch if in a git repo and…
5 -9. Define an awesome PS1 prompt
10. Improved PS2 prompt
11. Set vi as the editor at the command line
12. Set vi as the default editor
13. execute my .bash_aliases file if it exists
14. Execute my git tab completion script (for remotes and branches) if it exists.
15. Execute autojump if it exists
16. Allow cd’ing without typing the cd part if the bash version >= 4
17. Execute a bash completion script if it exists
18. Use TMUX if it is present
19. Add rvm to my PATH
20. Use rvm if it exists.

I use the bashrc file to perform some of these adjustments to the bash shell, as well as display information from Neofetch, vnstat and hardware sensors during login.

Lima

About the author

Lima is the visual nautical indicator for "stop instantly."

Comments

Leave a Reply