.bash_profileと.bashrcの違いが覚えられないあなたへの処方箋

なぜ、「.bash_profileと.bashrcの違い」をすぐ忘れてしまうのか?

ずばり、
「どっちに書いても、実用上は対して変わらない」
からでしょう。

ちょこっと環境変数を定義する程度なら、どっちに書いても動くのです。

どっちに書いてもそれなりに動く → 違いがわからない → 忘れる
これが魔の忘却ループです。

.bash_profileと.bashrcの違いを絶対に忘れない方法

ではどうすればよいか?
「違いを自分の目ではっきりと見ること」

これに尽きます。
これから、一緒に手を動かして簡単な実験をしてみましょう。
5分ほどで終ります。

準備はいいですか?
① .bash_profileにechoを書いてみる
.bash_profileの最下行に1行追加します。
echo "\(うぇるかむようこそプロファイル)/"
② .bashrcにechoを書いてみる
.bashrcの最下行にも1行追加します。
echo "\(うぇるかむようこそアールシー)/"
③普通のシェルスクリプトを用意する
echo helloするだけのシェルスクリプトを用意しましょう。

hello.sh
echo hello
さあ、準備はととのいました。
では一度ログアウトして、ログインしなおしてください。

実験開始

レッツログイン!

$ ssh username@hostname
Last login: Mon Aug 20 23:37:09 2012 from 111.222.333.444
\(うぇるかむようこそアールシー)/
\(うぇるかむようこそプロファイル)/
おお、ウェルカムメッセージが2つも出ましたね。
うざいですね笑

この状態から、自分自身に再ログインしてみましょう。

$ su - username
パスワード:
\(うぇるかむようこそアールシー)/
\(うぇるかむようこそプロファイル)/
おお、やはり2つ出ました。
うざいですね笑

では、"bash"とだけ打ってみましょう。 

$ bash
\(うぇるかむようこそアールシー)/
おお、一つだけ出ました。
"bash"と打った場合は、.bash_profileは実行されなかったようです。
これは「ログインじゃない」ということなのでしょう。

では次に、さっき作ったhello.shを実行してみましょう。

$ bash hello.sh
hello
おお!?
予想に反してウェルカムメッセージが出ませんでした。

これでおわかりでしょうか?
違いは、"bash"コマンドを単独で打った場合にのみ現れるのです。

普段"bash"コマンドを単独で打つことがないあなたは、 日常で.bash_profileと.bashrcの違いを実感する機会がなく、すぐ忘れてしまうのです。

というわけで、忘れたらまたこの手順を1からやってみてください。
2~3回やれば絶対覚えます。

それではEnjoy!
カテゴリ: