GNU/Linux >> Linux の 問題 >  >> Linux

ログインシェルと非ログインシェルの違いは?

インタラクティブシェルと非インタラクティブシェルの基本的な違いを理解しています。しかし、ログインシェルと非ログインシェルの正確な違いは何ですか?

非ログインインタラクティブの使用例を教えてください シェル?

承認された回答:

ログインシェルは、インタラクティブセッションにログインするときにユーザーIDで実行される最初のプロセスです。ログインプロセスは、シェルに、通常はシェル実行可能ファイルの名前である引数0を-で渡すという規則に従って、ログインシェルとして動作するように指示します。 接頭辞付きの文字(例:-bash 通常はbashです。 。ログインシェルは通常、環境変数の設定などを行うファイルを読み取ります:/etc/profile および~/.profile 従来のBourneシェルの場合、~/.bash_profile さらにbashの場合、/etc/zprofile および~/.zprofile zshの場合、/etc/csh.login および~/.login cshなどの場合

テキストコンソール、SSH、またはsu -でログインする場合 、インタラクティブログインを取得します シェル。 (Xディスプレイマネージャーで)グラフィカルモードでログインすると、ログインシェルは取得されず、代わりにセッションマネージャーまたはウィンドウマネージャーが取得されます。

非対話型ログインを実行することはめったにありません シェルですが、一部のX設定では、プロファイルファイルの読み取りを調整するために、ディスプレイマネージャーでログインしたときにこれを実行します。その他の設定(これはディストリビューションとディスプレイマネージャーによって異なります)は、/etc/profileを読み取ります。 および~/.profile 明示的に、またはそれらを読まないでください。非対話型ログインシェルを取得する別の方法は、端末ではない標準入力を介して渡されるコマンドを使用してリモートでログインすることです。 ssh example.com <my-script-which-is-stored-locallyssh example.com my-script-which-is-on-the-remote-machineとは対照的 、非対話型、非ログインシェルを実行します。

既存のセッション(画面、X端末、Emacs端末バッファー、別の内部のシェルなど)の端末でシェルを開始すると、対話型の非ログインが得られます。 シェル。そのシェルはシェル構成ファイル(~/.bashrc)を読み取る可能性があります bashとして呼び出されたbashの場合 、/etc/zshrc および~/.zshrc zshの場合、/etc/csh.cshrc および~/.cshrc cshの場合、ENVで示されるファイル shとして呼び出された場合の、dash、ksh、bashなどのPOSIX/XSI準拠のシェルの変数 、$ENV 設定されている場合、~/.mkshrc mkshなどの場合)。

シェルがスクリプトまたはコマンドラインで渡されたコマンドを実行する場合、それは非対話型、非ログインです。 シェル。このようなシェルは常に実行されます。プログラムが別のプログラムを呼び出すと、実際にはシェルで小さなスクリプトを実行して他のプログラムを呼び出すことがよくあります。この場合、一部のシェルはスタートアップファイルを読み取ります(bashはBASH_ENVで示されるファイルを実行します 変数、zshは/etc/zshenvを実行します および~/.zshenv )、ただしこれにはリスクが伴います。シェルはあらゆる種類のコンテキストで呼び出すことができ、何かを壊さないようにできることはほとんどありません。

関連:tc qdiscとiperfを理解していますか?

少し簡略化しています。厄介な詳細については、マニュアルを参照してください。


Linux
  1. 2>&-、2> / dev / null、|&、&> / dev/nullと>/dev / null 2>&1の違いは?

  2. シェル変数と環境変数の使用法の違いは?

  3. EotとEofの違いは?

  1. [0-9]、[[:digit:]]とDの違いは?

  2. $HOME と '~' (チルダ) の違いは?

  3. Nohup とアンパサンドの違いは何ですか

  1. 組み込みコマンドとそうでないコマンドの違いは?

  2. bashの&>と>&の違いは何ですか?

  3. bash スクリプトのコマンドとターミナルのコマンドの違い