Help us understand the problem. What is going on with this article?

本当に正しい .bashrc と .bash_profile の使ひ分け

More than 1 year has passed since last update.

適当にググると「とにかく何でも .bash_profile に書いとけばおk」みたいな嘘を書いたブログ記事がわんさか出てくるのでここに正解を書いておきます。

.bash_profile

.bash_profile はログイン時にのみ実行されます。具体的な用途は:

  • 環境変数を設定する (export する変数)

環境変数はプロセス間で勝手に受け継がれるのでログイン時のみ設定すれば十分です。

.bashrc

.bashrc は対話モードの bash を起動する時に毎回実行されます。具体的な用途は:

  • 環境変数でない変数を設定する (export しない変数)
  • エイリアスを定義する
  • シェル関数を定義する
  • コマンドライン補完の設定をする

これらは bash を起動する度に毎回設定する必要があるものです。

その他

.bash_profile ? .bashrc ? いろいろあるけどこいつらなにもの? を参照。もっと突き詰めたい人は Linux: .bashrcと.bash_profileの違いを今度こそ理解する

Bash 以外のシェルを使用しない人は .bash_profile と .bashrc だけ知っておけば十分です。

.bashrc に書いた設定が反映されないけど .bash_profile に書くといける場合は、 .bash_profile から .bashrc を読み込む処理が抜けてます。

# .bash_profile の最後に
test -r ~/.bashrc && . ~/.bashrc
magicant
大学(院)では型システムについて研究してゐました。 今はスマートフォン用電子書籍ビューアーを作る仕事をしてゐます。 趣味では yash といふコマンドラインシェルを作ってゐます。
https://magicant.github.io/
access
SDNからセンサ、家電、電子書籍まで。ACCESSはあらゆるレイヤのデバイス、サービスを「繋げて」いきます。
http://jp.access-company.com
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away