Linux のシェル初期化ファイルとユーザー プロファイルについて
Linux はマルチユーザーのタイムシェアリング システムであり、複数のユーザーがログインしてシステムを使用できることを意味します。また、システム管理者には、ソフトウェアのインストール/更新/削除、実行できるプログラム、表示/編集できるファイルなどの観点から、さまざまなユーザーがシステムを操作する方法のさまざまな側面を管理するタスクがあります。
Linux では、システム全体 (グローバル) 構成とユーザー固有 (個人) 構成を使用するという 2 つの主な方法でユーザーの環境を作成または維持することもできます。通常、Linux システムを操作する基本的な方法はシェルです。シェルは、ユーザーのログイン成功後の初期化中に読み取られる特定のファイルに応じて環境を作成します。
推奨読書: Linux で環境変数を設定する方法
この記事では、Linux のローカル ユーザー管理のためのユーザー プロファイルに関連したシェル初期化ファイルについて説明します。カスタム シェル関数、エイリアス、変数、およびスタートアップ プログラムを保存する場所をお知らせします。
重要: この記事では、sh と互換性のあるシェルである bash に焦点を当てます。 Linux システム上で最も人気があり、使用されているシェル。
別のシェル (zsh、ash、fish など) プログラムを使用している場合は、そのドキュメントを読んで、ここで説明するいくつかの関連ファイルの詳細を確認してください。
Linux でのシェルの初期化
シェルが呼び出されると、シェル自体とシステム ユーザーの環境をセットアップするのに役立つ特定の初期化/起動ファイルが読み込まれます。つまり、事前定義された (およびカスタマイズされた) 関数、変数、エイリアスなどです。
シェルによって読み取られる初期化ファイルには 2 つのカテゴリがあります。
- システム全体の起動ファイル – これらには、システム上のすべてのユーザーに適用されるグローバル設定が含まれており、通常は /etc ディレクトリにあります。これらには、/etc/profiles と /etc/bashrc または /etc/bash.bashrc が含まれます。
- ユーザー固有の起動ファイル – これらは、システム上の単一ユーザーに適用される設定を保存し、通常はユーザーのホーム ディレクトリにドット ファイルとして配置されます。システム全体の構成をオーバーライドできます。これらには、.profiles、.bash_profile、.bashrc、および .bash_login が含まれます。
繰り返しになりますが、シェルは 3 つの可能なモードで呼び出すことができます。
1. 対話型ログインシェル
シェルは、ユーザーが /etc/passwd ファイルに保存されている認証情報を読み取った後、/bin/login を使用してシステムに正常にログインした後に呼び出されます。
シェルが対話型ログイン シェルとして開始されると、/etc/profile とそれに相当するユーザー固有の ~/.bash_profile を読み取ります。
2. インタラクティブな非ログインシェル
シェルは、$/bin/bash や $/bin/zsh などのシェル プログラムを使用してコマンドラインで起動されます。 /bin/su コマンドを実行して開始することもできます。
さらに、対話型の非ログイン シェルは、グラフィカル環境内からコンソール、ターミネーター、xterm などのターミナル プログラムを使用して呼び出すこともできます。
この状態でシェルが起動されると、親シェルの環境がコピーされ、追加の起動構成指示のためにユーザー固有の ~/.bashrc ファイルが読み取られます。
su
ls -la
3. 非対話型シェル
シェルは、シェル スクリプトの実行中に呼び出されます。このモードでは、スクリプト (シェルまたは汎用システム コマンド/関数のセット) が処理され、そうでない限り、コマンド間のユーザー入力は必要ありません。親シェルから継承した環境を使用して動作します。
システム全体のシェル起動ファイルについて
このセクションでは、システム上のすべてのユーザーの構成を保存するシェル起動ファイルについてさらに詳しく説明します。これらには次のものが含まれます。
/etc/profile ファイル – システム全体の環境構成とログイン設定用の起動プログラムが保存されます。すべてのシステム ユーザーの環境に適用するすべての構成をこのファイルに追加する必要があります。
たとえば、ここでグローバル PATH 環境変数を設定できます。
cat /etc/profile
注:RHEL/CentOS 7 などの特定のシステムでは、「次のような警告が表示されます。自分が何をしているのか知っています。 /etc/profile.d/ にカスタムの .sh シェル スクリプトを作成して、環境にカスタムの変更を加える方がはるかに効果的です。そうすることで、環境をマージする必要がなくなります。今後のアップデート」。
/etc/profile.d/ ディレクトリ – 環境にカスタム変更を加えるために使用されるシェル スクリプトが保存されます。
cd /etc/profile.d/
ls -l
/etc/bashrc または /etc/bash.bashrc ファイル – すべてのシステム ユーザーに適用されるその他の設定を含む、システム全体の関数とエイリアスが含まれています。
システムに複数のタイプのシェルがある場合は、bash 固有の構成をこのファイルに入れることをお勧めします。
cat /etc/bashrc
ユーザー固有のシェル起動ファイルについて
次に、ユーザー固有のシェル (bash) 起動ドット ファイルについて詳しく説明します。このファイルは、システム上の特定のユーザーの構成を保存します。ファイルはユーザーのホーム ディレクトリにあり、次のものが含まれます。
ls -la
~/.bash_profile ファイル – ユーザー固有の環境とスタートアップ プログラムの構成が保存されます。以下のスクリーンショットに示すように、ここでカスタム PATH 環境変数を設定できます。
cat ~/.bash_profile
~/.bashrc ファイル – このファイルにはユーザー固有のエイリアスと関数が保存されます。
cat ~/.bashrc
~/.bash_login ファイル – 通常、システムにログインするときにのみ実行される特定の設定が含まれています。 ~/.bash_profile が存在しない場合、このファイルは bash によって読み取られます。
~/.profile ファイル – このファイルは、~/.bash_profile と ~/.bash_login が存在しない場合に読み取られます。同じ設定を保存でき、システム上の他のシェルからもアクセスできます。ここでは主に bash について説明しているため、他のシェルは bash 構文を理解できない可能性があることに注意してください。
次に、必ずしも bash 初期化ファイルではない他の 2 つの重要なユーザー固有のファイルについても説明します。
~/.bash_history ファイル – bash は、ユーザーがシステム上で入力したコマンドの履歴を保持します。このコマンドのリストは、ユーザーのホーム ディレクトリの ~/.bash_history ファイルに保存されます。
このリストを表示するには、次のように入力します。
history
or
history | less
~/.bash_logout ファイル – シェルの起動には使用されませんが、ログアウト手順に関するユーザー固有の指示が保存されます。これは、ユーザーが対話型ログイン シェルを終了するときに読み取られて実行されます。
実際の例としては、ログアウト時にターミナル ウィンドウをクリアする方法があります。これはリモート接続にとって重要であり、閉じた後もウィンドウはきれいなままになります。
cat bash_logout
さらに詳しい情報が必要な場合は、さまざまな Linux ディストリビューションでこれらのシェル初期化ファイルの内容を確認し、bash のマニュアル ページも読んでください。
それは今のところすべてです!今回はLinuxにおけるシェル起動・初期化ファイルについて解説しました。以下のコメント フォームを使用してご返信ください。