.bashrc at ssh login [closed]

2019-01-07 02:10发布

问题:

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?

回答1:

.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


回答2:

I had similar situation like Hobhouse. I wanted to use command

 ssh myhost.com 'some_command'

and 'some_command' exists in '/var/some_location' so I tried to append '/var/some_location' in PATH environment by editing '$HOME/.bashrc'

but that wasn't working. because default .bashrc(Ubuntu 10.4 LTS) prevent from sourcing by code like below

# If not running interactively, don't do anything
[ -z "$PS1" ] && return

so If you want to change environment for ssh non-login shell. you should add code above that line.



回答3:

For an excellent resource on how bash invocation works, what dotfiles do what, and how you should use/configure them, read this:

  • DotFiles


回答4:

If ayman's solution doesn't work, try naming your file .profile instead of .bash_profile. That worked for me.



标签: ubuntu ssh bash