[ホーム] > [間違えやすい類語 IT編一覧] > [ログインシェルとインタラクティブシェルの違い]

ログインシェルとインタラクティブシェルの違い

作成日:2020/01/29

このページでは 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編一覧]
,







【注意】本ページは著作権で保護されています。内容は何人も補償しません。時間的あるいは金銭的損失等、一切保証しません。

理解しやすく記載されており、一部不正確な記載がある可能性があります。ご自身の責任で参考にしてください。