web-dev-qa-db-ja.com

「インタラクティブシェルごと」とはどういう意味ですか?

man bashと入力すると、次のように表示されます。

FILES
       /bin/bash
              The bash executable
       /etc/profile
              The systemwide initialization file, executed for login shells
       /etc/bash.bashrc
              The systemwide per-interactive-Shell startup file
       /etc/bash.bash.logout
              The systemwide login Shell cleanup file, executed when a login Shell exits
       ~/.bash_profile
              The personal initialization file, executed for login shells
       ~/.bashrc
              The individual per-interactive-Shell startup file
       ~/.bash_logout
              The individual login Shell cleanup file, executed when a login Shell exits
       ~/.inputrc
              Individual readline initialization file

「インタラクティブシェルごと」とはどういう意味ですか?特に、ここで「per」とはどういう意味ですか?ここで「per」は「each」を意味しますか?各インタラクティブシェル?それとも何か他の意味ですか?

「インタラクティブシェルごとの個別のスタートアップファイル」とは、「インタラクティブシェルごとの個別のスタートアップファイル」を意味しますか?

1
Victor

bashrcファイルは、個々のインタラクティブシェルを初期化するために使用されます。

ログインシェルにもまったく同じ状況が当てはまるので、ここで「per-」プレフィックスが実際に必要な理由は少しわかりません(他のファイルに関してはそうですが)。また、非対話型シェルは任意のファイルを使用します$BASH_ENVは、のパス名を保持します。つまり、「$BASH_ENVは、非対話型シェルの起動ファイルです」。

これは、ファイルが実際にソースされていることを(何らかの理由で)強調する試みである可能性がありますeachインタラクティブシェル。

この表現は、bashのリリース2.0で導入されました(私は信じています)。

2
Kusalananda

ここに2つのことがあります。まず簡単なもの:

「個人」は「個人」の別の言葉であり、(この場合は)ユーザーアカウントのホームディレクトリにあるファイルを意味します。実際、すべての個人/個人ファイルのプレフィックスは~/であることに注意してください。

自宅のコンピュータのようなデスクトップシステムでは、通常、ユーザーアカウントは1つしかありませんが、サーバーコンピュータでは、複数のアカウントを登録できます。各アカウントには独自のホームディレクトリがあり、したがって、独自の個人/個人.bash_profile.bashrcなど。


今は難しいものです。これを説明するために、小さな序文が必要です。

Bashは、「login」interactive-shellsと「other "interactive-shells」を区別します。 (私はzshkshのような他のプログラムについての経験はありませんが、それらもそうだと思います)。

たとえば、Linuxシステムでは、loginシェルは通常、テキストコンソールまたはからユーザー名とパスワードを(正しく)入力した後に開始される最初のシェルにすぎません。 sshなどのネットワーク接続。

それどころか、「other」インタラクティブシェルは通常、ターミナルエミュレータアプリケーションのアイコンをクリックしたときにグラフィックデスクトップによって開始されるものです。

その他」(つまり、ログイン以外の)インタラクティブシェルは、ログインのものからでもネストされたインタラクティブシェルを後で呼び出す場合にも使用されます。

この後者の場合の実際的な例。 sshを介してリモートコンピューターに自分自身を認証した後(つまり、ログイン)、最初のシェルのプロンプトが表示されたとします。これはログインインタラクティブシェルです。ただし、bashと入力してReturnキーを押すと、新しいother interactive-Shellが開始されます。好きなだけ入れ子にすることができます。開始したネストされたインタラクティブシェルのスタックを巻き戻すには、それぞれにexit(またはControl-D)と入力する必要があります。

そこにあるBashのドキュメントには、loginシェルの起動時に自動的に実行されるファイルと、otherシェルの起動時に他のどのファイルが実行されるかが記載されています。 login shellsを終了したときにのみ自動的に実行されるが、other shellsを終了したときには実行されないファイルもいくつかあります。

0
LL3