(1) ログインシェルとは?非ログインシェルとの違いも併せてご紹介
(1-1) ログインシェルの概要
(1-2) ログインシェルの役割
(1-3) ログインシェルの動作
(1-4) ログインシェルが呼び出される条件
(1-5) 非ログインシェルとの違いについて
(1-6) 見分け方
(1) ログインシェルとは?非ログインシェルとの違いも併せてご紹介
(1-1) ログインシェルの概要
ログインシェルはOSユーザのログイン時に、起動される「シェル」です(ログイン後の最初の処理)。
「シェル」はユーザとカーネル(OSの中核部品)との間のインターフェイスです(コマンドラインインターフェイス)。ユーザから受け取ったコマンドのインタープリタ(コマンドを機械語に変換)として機能します。
通常UNIX系のマシンにTeraTermやPutty等からログインすると、ログインシェルが起動されます。具体的には、PuttyやTeraTermでUNIXサーバにログインする際に、ユーザ名とパスワードを聞いてきます。これが「ログインシェル」です。
ログインシェルには初回ログイン時のみに実施する初期化処理(環境変数の設定など)を行う事が主目的になります。いくつかの起動ファイルからコマンドを読み込み実行しています。
思想的にはユーザはホスト×ターミナル単位で最大1つのログインシェルを持つという考え方です。例えば、ホストAのTeraTerm単位(ターミナルの模倣)で1つ、ホストBのPutty単位(ターミナルの模倣)で1つといった具合です。
(1-2) ログインシェルの役割
以下がログインシェルの主な役割です。
①ノンログインシェルを起動する
②環境変数をセットする(起動に必要なパラメータ)
③デフォルト値の設定(USERNAME、HOSTNAMEなど)
環境変数は具体的には「PATH」や「TERM」や「UID」や「GID」などです。
(1-3) ログインシェルの動作
ログインシェルは以下の流れで動作します。
①「/etc/profile」の実行
②「/etc/profile」により「/etc/profile.d/」の全スクリプトが実行される
(「/etc/profile.d/*.sh」が実行される)
③「~/.bash_profile」の実行
④「~/.bash_profile」により「~/.bashrc」が実行される
⑤上記が存在しない場合は「~/.bash_login」⇒「~/.profile」と順番に読み込んでいきます。
(1-4) ログインシェルが呼び出される条件
条件は色々ありますが、例を2つご紹介します。
①ssh接続によりリモートでマシンに接続する場合
(図141)
②su -usernameで別の非rootユーザにスウィッチする場合
(図142)
(1-5) 非ログインシェルとの違いについて
①新しいGnomeのターミナルを開いた時
(図151)
②プロンプトから「bash」を実行した時
(図152)
(1-6) 見分け方
TeraTerm等からサーバにログインした直後に以下のコマンドを実行すると、ログインシェルが表示されます。
echo $0
[…] Engineログインシェルとは?非ログインシェルとの違いも併せてご紹介|Rainbow En…環境変数の設定(~/.bash_profile, […]