Linux システムでは、非常に頻繁に表示される 3 つのファイル タイプ、つまり、profile、bash_profile、および bashrc ファイルがあります。名前のせいで、これら 3 種類のファイルの機能を混同している人が多いため、今日はこれら 3 種類のファイルの機能と違いを詳しく調べていきます。
1.プロファイル ファイル
1.1 プロファイルファイルの役割
profile(/etc/profile) は、システム レベルの環境変数と起動プログラムを設定するために使用されます。このファイル内の構成はすべてのユーザーに有効になります。
ユーザーがログインすると、ファイルが実行され、/etc/profile.d ディレクトリ内の構成ファイルからシェル設定が検索されます。
1.2 プロファイルに環境変数を追加する
このファイルに追加された設定はすべてのユーザーに影響するため、/etc/profile ファイルに環境変数を追加することは一般的に推奨されません。
追加する必要がある場合は、次のように追加できます:
たとえば、magedu.com という HOST 値を持つ環境変数を追加します:
エクスポートHOST=magedu.com
追加する場合、行末に ; 記号を使用するかどうかを選択できます。
変数名は複数の変数値に対応できます。複数の変数値は: で区切る必要があります。
環境変数を追加した後、有効にするために再度ログインする必要があります。source コマンドを使用して、環境変数をすぐに有効にすることもできます:
ソース/etc/profile
有効かどうかを確認するには、echo コマンドを使用できます。
###ホスト###magedu.com
2.bashrc ファイルbashrc ファイルは、関数またはエイリアスの構成に使用されます。 bashrc ファイルには 2 つのレベルがあります:
システム レベルのものは /etc/bashrc にあり、ユーザー レベルのものは ~/.bashrc にあります。両方とも、それぞれすべてのユーザーと現在のユーザーに有効になります。
bashrc ファイルは指定されたシェル タイプでのみ動作し、bashrc は bash シェルによってのみ呼び出されます。
3.bash_profile ファイルbash_profile は 1 人のユーザーに対してのみ有効です。ファイルは ~/.bash_profile に保存されます。このファイルはユーザーレベルの設定であり、特定のユーザーのプロファイル ディレクトリとして理解できます。
このファイルは環境変数の設定やプログラムの起動にも使用できますが、有効なのは単一のユーザーのみです。
プロファイル ファイルと同様に、bash_profile もユーザーのログイン時に有効になり、環境の変更を設定するために使用することもできます。
ただし、profile とは異なり、bash_profile は現在のユーザーに対してのみ有効です。
4. 違いの概要これら 3 つのファイル タイプの違いは、一文で表すことができます:
/etc/profile、/etc/bashrc はシステムのグローバル環境変数設定であり、~/.profile、~/.bashrc はユーザーのホーム ディレクトリのプライベート環境変数設定です。
システムログイン時にシェルプロセスを取得すると、環境設定ファイルは以下のように読み込まれます。
4.1 まず、グローバル環境変数設定ファイル /etc/profile を読み取り、次に、その内容に基づいて、/etc/profile.d や /etc/inputrc;
などの追加の設定ドキュメントを読み取ります。 4.2 さまざまなユーザー アカウントに応じて、ホーム ディレクトリの ~/.bash_profile を読み取ります;読み取りに失敗した場合は、~/.bash_login が読み取られます;
再度失敗した場合は、~/.profile を読み込みます (これら 3 つのドキュメント設定は基本的に同じで、読み込みのみが優先されます);
4.3 最後に、ユーザーアカウントに応じて ~/.bashrc を読み込みます。
~/.profile と ~/.bashrc はどちらもパーソナライズカスタマイズ機能を持っていますが、~/.profile はこのユーザー固有のパスや環境変数などを設定することができ、ログイン時に一度しか実行できません。
~/.bashrcもユーザー固有の設定文書で、パスやコマンドエイリアスを設定することができ、シェルスクリプトを実行するたびに使用されます。
以上が3 種類の重要な Linux ファイルの用途と違いの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。