【linux】Linux環境変数の初期化と対応ファイルの有効順序

1. 環境変数(PATH)を理解する

環境変数 (PATH) は、いくつかのプログラムのアドレスを順番に含むリスト(通常は xxx/bin) です。環境変数を追加すると、システムはコマンドを入力するとコマンドを認識し、そのコマンドに対応するプログラムを実行できるようになります。任意のディレクトリにあります。環境変数の役割は、これらの場所が見つかることをシステムに伝えることです。

システム検索の順序は、現在のディレクトリ - システム変数リストの順 - 環境変数リストの順です。

2. 環境文書を理解する

(1) /etc/profile: システム構成ファイル、ユーザーのログイン時に 1 回読み取られます
(2) /etc/bash.bashrc: (Ubuntu) システム構成ファイル、ユーザーのログイン時に 1 回読み取られ、新しい端末セッションごとに一度読んだものを開きます。
/etc/bashrc: (Centos) システム構成ファイル。ユーザーのログイン時に 1 回読み取られ、新しいターミナル セッションが開かれるたびに 1 回読み取られます。
(3) ~/.profile (~/.bash_profile、~/.bash_login): ユーザー プロファイル、ユーザーのログイン時に 1 回読み取られます (
4) ~/.bashrc: ユーザー プロファイル、ユーザーのログイン時に 1 回読み取られます (毎回)新しいターミナルセッションを開くときに一度読み取ります

1. システム構成ファイルはグローバルに機能しますが、ユーザー構成ファイルは現在ログインしているユーザーに対してのみ機能します
2. 最初にシステム構成ファイルが読み取られ、次にユーザー構成ファイルが読み取られます ユーザー構成の変数と式ファイルはシステム構成ファイルから継承されます。

3. 環境変数初期化の原理

Linux システムにログインして bash シェルを起動すると、デフォルトで bash は複数のファイルの環境変数設定を検索します。これらのファイルは、まとめてシステム環境ファイルと呼ぶことができます。bash によってチェックされる環境変数ファイルは、bash を実行しているシステムによって異なります。システムがシェルを実行するには 3 つの方法があります。

(1) システムユーザーとしてログインした後にデフォルトで実行されるシェル
(2) 非ログイン対話型シェル
(3) 非対話型シェルを実行するスクリプトを実行

環境変数に対するこれら 3 種類の影響は、ログイン シェル非ログイン シェルの2 つのカテゴリに分類できます。

3.1. ログインシェルから Linux に入る

アカウントとパスワードを使用してログインします——>/etc/profile (グローバル ファイル G1)——>/etc/profile.d/ (グローバル スクリプト ディレクトリ F1)——> ~/.profile (ユーザ ファイル U1)——> ~ /.bashrc (ユーザーファイル U2) -->/etc/bash.bashrc (グローバルファイル G2)

ユーザーがLinuxシステムにログインすると、ログインシェルとしてシェルが起動されますが、このときログインシェルは上図の順序で環境変数を読み込みます。

ユーザーがシステムにログインすると、/etc/profile グローバル環境変数ファイルが最初にロードされます。これは、Linux システム上のデフォルトのシェル メイン環境変数ファイルです。このファイルは、システムにユーザーがログインするたびにロードされます。

/etc/profile ファイルがロードされると、/etc/profile.d/ ディレクトリ内のスクリプト ファイルが実行されます。このディレクトリには、以下に示すように多くのスクリプト ファイルがあり、ユーザーはログを記録した後にスクリプトを実行できます。で。
ここに画像の説明を挿入

~/.profile (ユーザー環境変数ファイル) を実行します。このファイルの中に ~/.bashrc (ユーザー環境変数ファイル) があります。存在する場合は実行されます。存在しない場合は実行されません。 . ~/ 内 .bashrc ファイルは /etc/bash.bashrc (グローバル環境変数ファイル) を探します。存在する場合は実行され、存在しない場合は実行されません。

3.2. ログインシェルなしで Linux に入る

パスワードの入力を必要としないログインまたはリモート SSH 接続 --> ~/.bashrc (ユーザー ファイル U2) --> /etc/bash.bashrc (グローバル ファイル G2)

ログイン時にユーザーのシェルが起動していない場合 (手動で bash またはその他のログインを入力するときに起動する場合や、パスワードの入力を必要としないリモート SSH 接続で起動する場合など)、この非ログイン シェルは ~/.bashrc (ユーザー環境) のみをロードします。変数ファイル) を検索し、/etc/bash.bashrc (グローバル環境変数ファイル) を探します。

  • したがって、非ログインシェルで設定された環境変数やその他の内容を読み取れるようにしたい場合は、~/.bash_profile または /etc ではなく ~/.bashrc または /etc/bashrc に変数設定を書き込む必要があります。 /プロフィール。

おすすめ

転載: blog.csdn.net/weixin_43693967/article/details/128352089
おすすめ