[ホーム] > [間違えやすい類語 IT編一覧] > [ログインシェルとインタラクティブシェルの違い]
このページでは Unix , Linux などでよく使用される用語である"ログインシェル" と "インタラクティブシェル"の違いに関して説明します。比較は bash 環境を想定しています。あらかじめ断りますが、これらの言葉は曖昧に使用されている面もあると思います。あくまでも参考程度でよんでください。
bash ではシェルを何個も起動することが可能です。その中でユーザがログインした後に最初に起動されるシェルが"ログインシェル"、ログインシェルから起動されるシェルでユーザと対話が可能なシェルを"インタラクティブシェル"と呼びます。ただしbash のオプションにより2個目以後のログインシェルを起動させることが可能です。これらは環境変数や呼ばれる初期化シェルが大きく違うため、違いを把握しておくことは重要です。
interactiveとは "相互作用、対話的"という意味です。
(*)環境やディストリビューションにより動作は大きく異なる可能性があります。あくまでも参考程度にしてください。
(注意)分かりやすく簡単に記載しており、一部の環境や分野では記載内容が異なる可能性があります。あくまでも参考程度でお読みください。
説明 | ログインシェル | インタラクティブシェル |
概要 | ログインシェルとは主に以下の場合に実行されるシェルのことです。 ・ユーザログイン時(ログインした場合に自動的にログインシェルが実行される。) ・su - [ユーザ名] のようにマイナスをつけてシェルを起動する場合 ・bash --login のように --loginをつけてシェルを起動する場合 | インタラクティブシェルとは主に以下の場合に実行されるシェルのことです。 ・su [ユーザ名] のようにマイナスを付けないでシェルを起動する場合 ・bash のように --loginを付けないでシェルを起動する場合 |
実行されるプログラム | /etc/profile ~/.bash_profile ~/.bash_login ~/.profile (多くのディストリビューションでは ~/.bash_profile から ~/.bashrcを呼び出す) | ~/.bashrc (多くのディストリビューションでは ~/.bashrc からbashrcが呼び出される。) |
どのような場合に使用するのか | 例として以下のような場合が考えられます。 一般管理者から root にスイッチしたい場合、 su コマンドのみでは一般管理者の環境変数をroot が引き継いでしまいます。 su - コマンドを実行すると環境変数を引き継ぎません。 | - |
関連リンク:
シェル、コンソール、端末、コマンドラインの違いを比較表で解説
[ホーム] > [間違えやすい類語 IT編一覧]
,