【Linux初心者入門】.bashrcと.bash_profileの違いって?

スポンサーリンク

はじめに

クマくん
クマくん

サメさん、今Linuxの勉強をしてるんだけど、.bashrcと.bash_profileって何が違うの?

さめさん
さめさん

随分ニッチなところが気になるんだね!

でも素晴らしいと思うよ。

具体的に何で悩んでたの?

クマくん
クマくん

環境変数を設定しようとしたんだけど、bashrcとbash_profileどちらに記述したらいいのか悩んでて、記事ググってみたんだけど、どちらでもいいって記事が多くて・・・

さめさん
さめさん

どちらでもよくはないんだよなぁ。

使い分けが結構重要だからね。

さめさん
さめさん

せっかくだから何が違うのか整理して考えようか!

クマくん
クマくん

やった〜!!

前提

mac
macOS Mojave 10.14.5
bash

参考サイト

Linux: .bashrcと.bash_profileの違いを今度こそ理解する|TechRacho(テックラッチョ)〜エンジニアの「?」を「!」に〜|BPS株式会社
こんにちは、hachi8833です。社内Slackで見かけたmorimorihogeさんの以下の書き込みで目から鱗が落ちました。 ~/.bashrcで何かを出力してしまうと、rsyncなどのsshパイプで問題が生じることがあるそうです。 参考: 知らないとrsyncでもハマるシェル初期化 - Qiita
本当に正しい .bashrc と .bash_profile の使ひ分け - Qiita
適当にググると「とにかく何でも .bash_profile に書いとけばおk」みたいな嘘を書いたブログ記事がわんさか出てくるのでここに正解を書いておきます。 .bash_profile .bash_profile はログイン時に...

そもそもbashって?

さめさん
さめさん

おさらいだけど、クマくんbashってなんだっけ?

クマくん
クマくん

そんなの決まっているじゃないか!

シェルの1種だよ。

他には確か・・・fishとかzshとかがあるんだよね。

さめさん
さめさん

そうそうその通り!

詳細は下の記事をみてもらえばいいと思うんだけど、

要はパソコンに指令を出すための仲介役だったよね。

【Linux入門シリーズ】シェルってなに?

.bashrcと.bash_profile

さめさん
さめさん

そしたら.bashrcと.bash_profileのイメージは分かるかな?

クマくん
クマくん

うーん、、、

どちらもbashが動く前の設定ファイルだってことは分かるんだけど、違いは正直分からないや。

さめさん
さめさん

そうだね!

動く前の設定ファイルであることは間違いないね。

あとはそれぞれの読み込むタイミングと記述する内容を整理しようか!

.bash_profile

.bash_profileのポイント
  • .bash_profileはログインした時に読み込まれる。(bashがログインシェルだった場合)
  • 初期設定で必要なものを記述しておくと良い。
  • 環境変数は各プロセスで共通しているので、.bash_profileに記述する
.bash_profileのまとめだよ

.bashrc

.bashrcのポイント
  • bashが対話モードとして起動する度に読み込まれる。
  • 要はコマンドを打つ度に読み込まれる。
  • エイリアスやコマンドの補完を記述する。
.bashrcについてまとめてみたよ

補足

クマくん
クマくん

な、なるほど・・・!

こういう違いがあったのか。

.bashrcがコマンドを打つ度に読み込まれるって全然知らなかったよ・・・!

さめさん
さめさん

そうそう。

なんでもbash_profileに記述すればいいってものでもないんだよね。

さめさん
さめさん

他のシェルも同時に使っていく場合なんかは.profileに記述する必要もあるしね。

まとめ

さめさん
さめさん

最後にまとめて見ようか!

クマくん
クマくん

OK〜!

.bash_profileには環境変数だったり、PCの設定で必要な記述をする。

.bashrcにはコマンドラインで使うエイリアスやターミナルの設定を書いていく

って感じかな!

さめさん
さめさん

ざっくりそういう理解でいいと思うよ!

参考サイトをみてみると本当はもっと細かな使い分けをした方がいいって載っていたんだけど、初学者の人たちがそこまで細かく設定をしなければいけないシーンもないと思うし、最低限でいいと思うんだ。

クマくん
クマくん

確かに・・・

シェルをいちいち変えて使ったりもしないしね。

さめさん
さめさん

そうなんだよね。

でも、色々勉強しているうちにとりあえず.bash_profileに書いとけ〜みたいになって.bash_profileに何を書いているか分からなくなっちゃうからね。

使い分けして最低限管理しておくと良いと思うんだ。

クマくん
クマくん

そうだね、ありがとう〜!

さめさん
さめさん

PCを操作する上で、

Linuxの勉強とても重要だからね。

色々な参考書あるけど、この本たちがおすすめだよ。

おすすめ記事

【コーチングスキルを徹底解説③】フィードバックについて詳しく知ろう!
プログラミングメンターが勧める未経験からエンジニアになるための準備
未経験者から最強のRailsエンジニアになるためのロードマップ
Linux
スポンサーリンク
クマくんをフォローする
目指せ、スーパーエンジニア
タイトルとURLをコピーしました