【Linux初心者向け】.bash_profileと.bashrcの違いとは?正しい使い分けを解説

Linux

導入

Linuxサーバーを操作していると、PATHを通したり、便利なエイリアス(コマンドの短縮形)を登録するために、「.bash_profile.bashrcというファイルを編集してください」という解説をよく見かけますよね。

しかし、この2つのファイルは非常によく似ていて、「どちらに何を書けばいいの?」と混乱してしまいがちです。実際に、設定を間違ったファイルに書いてしまい、「ログインし直したら設定が消えてしまった!」という経験は、多くの人が通る道です。

この記事では、この紛らわしい.bash_profile.bashrcの明確な違いと、正しい使い分けについて、初心者の方にも分かるように解説します。


結論:シェルの「ログイン方法」で使い分ける

まず結論から言うと、この2つのファイルは**シェルの起動方法(ログインの方法)**によって読み込まれるタイミングが異なります。

  • .bash_profile: PCの電源を入れたり、サーバーにSSHで接続したりする「ログイン」時に1回だけ読み込まれます。
  • .bashrc: すでにログインしている状態で、新しくターミナルウィンドウを開くなど、新しいシェルを起動するたびに読み込まれます。

これを、家の玄関の鍵に例えてみましょう。

  • .bash_profile: 家に入るとき(ログイン時)に使う「玄関の鍵」です。家に入るときに一度だけ使います。
  • .bashrc: 家の中で部屋を移動するとき(新しいシェル起動時)に使う「各部屋の鍵」のようなものです。部屋に入るたびに使います。

シェルの種類について少しだけ詳しく

この違いを理解するために、「ログインシェル」と「非ログインシェル」という2種類のシェルの存在を知っておくと、よりスッキリします。

ログインシェル

ユーザー名とパスワードを入力して認証する、セッションの最初のシェルのことです。このシェルは、あなたの作業環境全体を整える役割を持っており、起動時に.bash_profileを読み込みます。

非ログインシェル

すでにログイン済みの状態で、追加で起動されるシェルのことです。例えば、GUIで新しいターミナルを開いた場合などがこれにあたります。こちらは.bashrcを読み込みます。


ベストプラクティス:どう書くのが正解?

「じゃあ、結局どこに何を書けばいいの?」となりますよね。多くの場合、以下のルールに従っておけば間違いありません。

  1. 設定は、基本的にすべて.bashrcに書く
    エイリアス、シェルの見た目の設定(PS1)、よく使う関数など、ターミナルを開くたびに有効にしたい設定は、すべて.bashrcに書きましょう。
  2. .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学習の「ヒント」になれば幸いです。快適なコマンドライン環境を構築して、作業の「時間効率」をどんどん上げていきましょう!

コメント

タイトルとURLをコピーしました