導入
Linuxサーバーを操作していると、PATH
を通したり、便利なエイリアス(コマンドの短縮形)を登録するために、「.bash_profile
や.bashrc
というファイルを編集してください」という解説をよく見かけますよね。
しかし、この2つのファイルは非常によく似ていて、「どちらに何を書けばいいの?」と混乱してしまいがちです。実際に、設定を間違ったファイルに書いてしまい、「ログインし直したら設定が消えてしまった!」という経験は、多くの人が通る道です。
この記事では、この紛らわしい.bash_profile
と.bashrc
の明確な違いと、正しい使い分けについて、初心者の方にも分かるように解説します。
結論:シェルの「ログイン方法」で使い分ける
まず結論から言うと、この2つのファイルは**シェルの起動方法(ログインの方法)**によって読み込まれるタイミングが異なります。
.bash_profile
: PCの電源を入れたり、サーバーにSSHで接続したりする「ログイン」時に1回だけ読み込まれます。.bashrc
: すでにログインしている状態で、新しくターミナルウィンドウを開くなど、新しいシェルを起動するたびに読み込まれます。
これを、家の玄関の鍵に例えてみましょう。
.bash_profile
: 家に入るとき(ログイン時)に使う「玄関の鍵」です。家に入るときに一度だけ使います。.bashrc
: 家の中で部屋を移動するとき(新しいシェル起動時)に使う「各部屋の鍵」のようなものです。部屋に入るたびに使います。
シェルの種類について少しだけ詳しく
この違いを理解するために、「ログインシェル」と「非ログインシェル」という2種類のシェルの存在を知っておくと、よりスッキリします。
ログインシェル
ユーザー名とパスワードを入力して認証する、セッションの最初のシェルのことです。このシェルは、あなたの作業環境全体を整える役割を持っており、起動時に.bash_profile
を読み込みます。
非ログインシェル
すでにログイン済みの状態で、追加で起動されるシェルのことです。例えば、GUIで新しいターミナルを開いた場合などがこれにあたります。こちらは.bashrc
を読み込みます。
ベストプラクティス:どう書くのが正解?
「じゃあ、結局どこに何を書けばいいの?」となりますよね。多くの場合、以下のルールに従っておけば間違いありません。
- 設定は、基本的にすべて
.bashrc
に書く
エイリアス、シェルの見た目の設定(PS1
)、よく使う関数など、ターミナルを開くたびに有効にしたい設定は、すべて.bashrc
に書きましょう。 .bash_profile
から.bashrc
を読み込む
次に、ログイン時にも.bashrc
の内容がちゃんと読み込まれるように、.bash_profile
に「もし.bashrc
というファイルが存在したら、読み込んでね」というおまじないを書いておきます。
お使いのOSによっては最初から書かれていることも多いですが、なければ以下の数行を.bash_profile
に追記してください。
Bash
# ~/.bash_profile
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi
この設定をしておけば、ログイン時(.bash_profile
)にも、新しいターミナルを開いた時(.bashrc
)にも、同じ設定が読み込まれるようになり、混乱することがなくなります。
まとめ
.bash_profile
と.bashrc
の違いは少しややこしいですが、
- 設定は基本的に
.bashrc
にまとめる .bash_profile
から.bashrc
を読み込む設定をしておく
というルールを覚えておけば、Linuxの環境設定で迷うことが格段に減るはずです。
この記事が、あなたのLinux学習の「ヒント」になれば幸いです。快適なコマンドライン環境を構築して、作業の「時間効率」をどんどん上げていきましょう!
コメント