web-dev-qa-db-ja.com

sshログイン時の.bashrc

Hardy 8.04を実行しているubuntu-boxにsshすると、.bashrcの環境変数が設定されません。

ソース.bashrcを実行すると、変数が適切に設定され、すべて正常に実行されます。

ログイン時に.bashrcが実行されないのはなぜですか?

348
Hobhouse

SSHを使用してログインする場合、.bashrcは取得されません。次のように.bash_profileでソースする必要があります。

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

ホブハウスのような似たような状況がありました。コマンドを使いたかった

 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非ログインシェルの環境を変更する場合。その行の上にコードを追加する必要があります。

64
ruseel

Bash呼び出しの仕組み、どのドットファイルが何をするのか、そしてそれらをどのように使用/構成するのかについての優れたリソースについては、以下をお読みください。

30
lhunath

Aymanのソリューションが機能しない場合は、.profileではなく.bash_profileという名前をファイルに付けてみてください。それは私のために働いた。

27
Loïc Wolff