.bashrc在sshlogin

当我在运行Hardy 8.04的我的Ubuntu的框中ssh,我的.bashrc中的环境variables没有设置。

如果我做一个源.bashrc,variables设置正确,一切都很好。

怎么.bashrc没有在login时运行?

使用SSHlogin时, .bashrc不是源代码。 你需要像这样在你的.bash_profile它:

 if [ -f ~/.bashrc ]; then . ~/.bashrc fi 

我和霍比豪斯有类似的情况。 我想用命令

  ssh myhost.com 'some_command' 

和'some_command'存在于'/ var / some_location'中,所以我试图通过编辑'$ HOME / .bashrc'在PATH环境中附加'/ var / some_location'

但那不起作用。 因为默认的.bashrc(Ubuntu 10.4 LTS)阻止了像下面的代码

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

所以如果你想改变ssh非loginshell的环境。 你应该在该行上面添加代码。

有关bash调用是如何工作的一个很好的资源,什么dotfiles做什么,以及如何使用/configuration它们,请阅读:

  • 点文件

如果ayman的解决scheme不起作用,请尝试命名文件.profile而不是.bash_profile 。 这对我有效。