When I ssh into my ubuntu-box running Hardy 8.04, the environment variables in my .bashrc
are not set.
If I do a source .bashrc
, the variables are properly set, and all is well.
How come .bashrc
isn't run at login?
When I ssh into my ubuntu-box running Hardy 8.04, the environment variables in my .bashrc
are not set.
If I do a source .bashrc
, the variables are properly set, and all is well.
How come .bashrc
isn't run at login?
.bashrc
is not sourced when you log in using SSH. You need to source it in your .bash_profile
like this:
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi
I had similar situation like Hobhouse. I wanted to use the command
ssh myhost.com 'some_command'
where some_command
exists in /var/some_location
.
I tried to append /var/some_location
to the PATH environment variable by editing $HOME/.bashrc
but that wasn't working. Because per default, .bashrc
(on Ubuntu 10.4 LTS) exits early due to this piece of code:
# If not running interactively, don't do anything
[ -z "$PS1" ] && return
Meaning if you want to change the environment for the ssh non-login shell, you should add code above that line.
For an excellent resource on how bash invocation works, what dotfiles do what, and how you should use/configure them, read this:
If ayman's solution doesn't work, try naming your file .profile
instead of .bash_profile
. That worked for me.
Similar as @Loïc Wolff , Added below in my $HOME/.bash_profile
Ubuntu 16
if [ -n "$BASH_VERSION" ]; then
# include .bashrc if it exists
if [ -f "$HOME/.bashrc" ]; then
echo "Executed .bash_profile , calling .bashrc"
. "$HOME/.bashrc"
fi
fi
I know its an old issue, but I was facing the same issue on Ubuntu 22.04.
have two identical servers, one of them source ~/.bashrc
properly, I see colors once I login by ssh, the other was not
both servers had the exact same ~/.bashrc
file
in my case the issue was when I installed golang using one liner on one of these two, it added new file ~/.bash_profile
that file only had three export path settings, so for some reason when I ssh this file was being source and not ~/.bashrc
removing .bash_profile
and only keeping .bashrc
solved the issue for me, or you can follow @swaz suggestion and keep both files