2つのbashログインスクリプトの違いを知っています。
.bashrc
は、「非ログイン」シェルによってのみ実行されます。
.bash_profile
(または.bash_login
または.profile
)は、「ログイン」シェルによって実行されます。
ログインのみの実行に適したものの良い例がありますか?私はそれらを.bash_profile
にしか入れませんが、.bashrc
では本当に意味がありませんか?
(私たちのほとんどは.bashrc
から.bash_profile
のソースを知っているので、反対の質問にはあまり意味がないようです...)
.bashrc
は非ログインシェル用であるため、画面にエコーするコマンドは避けます。また、.bashrc
のechoステートメントによってsftpコマンドとrsyncコマンドが失敗する(そして、おそらくscpコマンドも)経験することがあります。
# Print some information as we log in
# -s: OS Name -n: Node name -r: OS Release
uname -snr
uptime
また、通常、非対話型シェルからssh-agentを実行しません。 .bash_profile
にあります。
if [ -f ~/.ssh/ssh-agent ]; then . ~/.ssh/ssh-agent; fi
By風は、.bashrc
に決して入れてはならないことの良い例です。
それ以外の場合は、「仮想端末」の1つ1つで再帰的に実行されます;-)
あなたはそれを試すことができますが、それはちょっと楽しいです。
なぜそれを.profile
に配置するので、byobu(実際には画面のちょうどラッパーです)は、ログイン時に一度だけロードされます。また、ビオブ自体は、新しいインタラクティブなbashセッションを開始できます。