.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!