The code in .bashrc does not execute when I open a new terminal window in Ubuntu 12.04.
I noticed this when creating a .bash_aliases file. The aliases did not show up when I opened a new terminal. However when I type source .bashrc
the aliases did show up.
.bashrc should be run everytime I open a new terminal window right?
How do I make this happen?
It isn't necessarily run; at the top of the standard .bashrc is this comment:
I believe there is an option to run bash terminal as a login shell or not. With Ubuntu, gnome-terminal does not normally run as a login shell, so .bashrc should be run directly.
For login shells (like the virtual terminals), normally the file
~/.profile
is run, unless you have either~/.bash_profile
or~/.bash_login
, but they are not there by default. By default, Ubuntu uses only .profile.The standard
~/.profile
has this in it:This runs .bashrc if it is available - assuming $BASH_VERSION is present in your environment. You can check for this by entering the command
echo $BASH_VERSION
, and it should display some information on version number - it should not be blank.In my case, simply the
.bashrc
loader lines were missing in.bash_profile
I added it manually and it worked with my fresh login
.bash_profile
holds configuration for the bash shell. When you open a terminal, it first reads and executes commands from~/.bash_profile
. So you can add the following in.bash_profile
to setup the shell according to bashrc.If
$BASH_VERSION
is not set, try using thechsh
command to set your shell to/bin/bash
.I had a similar issue with 12.04 LTS, and it turned out the new user account had the default shell set to
/bin/sh
, which was the cause of the problem.According to the comment in
.profile
So there you go; if
~/.bash_profile
or~/.bash_login
exists, those will get run instead of~/.profile
.If you want to run
~/.bashrc
just add the linesource ~/.bashrc
inbash_profile
.It was pretty simple for me. I installed mssqltools and somehow it created a file
bash_profile
in $HOME directory. Asbash_profile
runs beforebashrc
is picked up, if you don't have asource
command inbash_profile
,bashrc
won't run.There are two ways to tackle this, either delete
bash_profile
or if you usebash_profile
, just add the following line anywhere in the file