質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.46%
bash

bash(Bourne-again-Shell)は sh(Bourne Shell)のインプリメンテーションに様々な機能が追加されたシェルです。LinuxやMac OS XではBashはデフォルトで導入されています。

ファイル

ファイルとは、文字列に基づいた名前又はパスからアクセスすることができる、任意の情報のブロック又は情報を格納するためのリソースです。

Linux

Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

コマンド

コマンドとは特定のタスクを行う為に、コンピュータープログラムへ提示する指示文です。多くの場合、コマンドはShellやcmdようなコマンドラインインターフェイスに対する指示文を指します。

zsh

zshは、UNIX系OSのシェルの1つです。 cshやksn系のコマンドライン編集機能も実装されたシェルです。

Q&A

2回答

1165閲覧

.bash_profileと.bashrcについて

rm11_j

総合スコア4

bash

bash(Bourne-again-Shell)は sh(Bourne Shell)のインプリメンテーションに様々な機能が追加されたシェルです。LinuxやMac OS XではBashはデフォルトで導入されています。

ファイル

ファイルとは、文字列に基づいた名前又はパスからアクセスすることができる、任意の情報のブロック又は情報を格納するためのリソースです。

Linux

Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

コマンド

コマンドとは特定のタスクを行う為に、コンピュータープログラムへ提示する指示文です。多くの場合、コマンドはShellやcmdようなコマンドラインインターフェイスに対する指示文を指します。

zsh

zshは、UNIX系OSのシェルの1つです。 cshやksn系のコマンドライン編集機能も実装されたシェルです。

0グッド

0クリップ

投稿2021/09/24 11:57

https://qiita.com/magicant/items/d3bb7ea1192e63fba850
タイトルの通りです。.bash_profileと.bashrcについて質問です。
上の記事に書いてあるように、.bash_profileはログイン時(ターミナル起動時)に読み込まれる。.bash_profileは.bashrcを読み込むので、ターミナルを起動した段階で.bashrcも読み込まれると理解しています。
ここで1つ質問です。ターミナル起動後、bashコマンドを実行すると、bash上でbashが起動(子プロセス)しますが、.bashrcというのは子プロセスとしてbashが起動した場合に読み込まれる設定ファイル、という認識であっていますか?
次に、echo $SHELLで、使用中のシェルを確認しました。zshでした。
この場合、.bash_profileというのは、zshの場合は読み込まれないのでしょうか?
またここからbashコマンドを実行した場合は、.bashrcは読み込まれますか?
初歩的な質問で申し訳ありません。回答よろしくお願いします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

シェルの動作の種類
1.対話型
1.1 ログインシェル・・・ .bash_profileを読む
1.2 ログインシェルでない対話型シェル・・・.bashrcを読む
2.非対話型(スクリプト実行など)・・・上記どちらも読まない(設定によっては他のファイルは読む)

端末起動時に最初に起動する対話型シェルがログインシェルかどうかは環境次第です。
引数無しのbashコマンドで起動したものは上記1.2です。

この場合、.bash_profileというのは、zshの場合は読み込まれないのでしょうか?

はい。Zsh自体は.bash_profile.bashrcも読み込みません。
もちろん、.zshrcsource ~/.bashrcと書けば読まれます。
Zshの場合は、
1.1 .zshrc.zloginの両方を読む
1.2 .zshrcを読む
です。Bash/Zshともここに書いた以外にも設定ファイルがあります。

参考:Unixシェル - Wikipedia

またここからbashコマンドを実行した場合は、.bashrcは読み込まれますか?

はい。上記1.2になります。

投稿2021/09/24 13:08

otn

総合スコア84804

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

doda

2021/09/24 19:08

どうでもいい細かい部分なのですが、zshの設定ファイルとしてなぜ.zshrcと.zloginを挙げているのでしょうか? 「ここに書いた以外にも設定ファイルがあります」と書かれているので間違いでは無いのですが、 ファイル名からも .zshrc ⇔ .bashrc(bash) / .cshrc(csh) .zprofile ⇔ .profile(sh) / .bash_profile(bash) .zlogin ⇔ .login(csh) という対応だと思うので、.zloginよりは.zprofileの方が分かりやすいんじゃないでしょうか? > 参考:Unixシェル - Wikipedia 参考として挙げるならばWikipediaでは無く、公式の情報の方が良くないでしょうか? Wikipediaは誰にでも書き換えられ、信憑性も怪しい情報が有ったりしますし。 実際、挙げられているリンク先ではzshが/etc/profile, ~/.profileを読むように書かれていますが、これは正しくないです。 厳密にはshという名前で起動されれば/etc/profile, ~/.profileを読みますが、何の注釈も無く読むように書かれているのは間違いでしょう。
otn

2021/09/24 22:31

他意は無いですが、自分がたまたま、.zloginを使っているからです。補足していただいたので、このままにしておきます。 Wikipediaを挙げたのは、他のシェルも含め、複数のシェルが表になっているからです。 細かいことを言うと、「~~というファイルがあればそれを読んで~~は読まない」という優先度も表では表現できてないですね。 Zshが/etc/profileを読まないのは知りませんでした。/etc/z~が無いと読む物のばかり思っていました。 ご教示ありがとうございます。
guest

0

bashはログインシェルではないインタラクティブシェルとして起動された場合~/.bashrcを読み込みます。

Bash Startup Files (Bash Reference Manual)

zshのスタートアップファイルは以下に記載されています。

zsh: 5 Files

もし~/.bash_profile~/.bashrcに書いたコマンドがスタートアップ時に実行されているのだとしたら、上記のzshのスタートアップファイルの中からさらに~/.bash_profile~/.bashrcが読み込まれていないか確認してください。

投稿2021/09/24 12:21

itagagaki

総合スコア8402

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.46%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問