ホームページ >システムチュートリアル >Linux >Linux での環境変数の使用は同じライフサイクルによって分割されます

Linux での環境変数の使用は同じライフサイクルによって分割されます

王林
王林転載
2024-03-25 08:00:49704ブラウズ

###序文:###

1. 環境変数はオペレーティング システム環境によって設定される変数であり、システム全体のユーザー プロセスに適用されます。

2. コマンド内で環境変数を設定できますが、ユーザーがログアウトすると設定値は失われます。

3. 繰り返し適用したい場合は、.profile で定義するのが最善です; 環境変数の使用はローカル変数の使用と同じです。

4. また、使用する前に、export コマンドを使用してインポートする必要があります。

1. 環境変数ファイルの概要

Linux の環境変数には、システム レベルとユーザー レベルが含まれます。システム レベルの環境変数は、システムにログインするすべてのユーザーが読み取る必要があるシステム変数ですが、ユーザー レベルの環境変数は、ユーザーがシステムを使用するときに読み込まれます。 . 環境変数なので、環境変数を管理するファイルもシステムレベルとユーザーレベルに分かれています。

2. Linux の変数の型

変数のライフサイクルによって定義される Linux 変数は、次の 2 つのカテゴリに分類できます。

1. 永続的: 設定ファイルを変更する必要があり、変数は永続的に有効になります

2. 一時的:export コマンドを使用して宣言します。シェルを閉じると変数は無効になります

3. Linux 環境変数ファイル

Linux 変数ファイルには、/etc/environment、/etc/profile、~/.profile、/etc/bash.bashrc、~/.bashrc、および ~/.bash_profile (通常はユーザーが独自のディレクトリに作成します) が含まれます。 ~/.bash_logout.

システムレベル:

1./etc/environment: ログイン時にシステムによって読み取られる最初のファイルです。このファイルは、システム全体の環境を設定します。このファイルは、システムの起動時にのみ読み取られます。redhat linux ダウンロードは、次の目的で使用されます。 all プロセスは環境変数を設定します。システムがこのファイルを使用する場合、このファイル内のコマンドは実行されません。代わりに、KEY=VALUE モードのコードに従い、VALUE を KEY パラメータに設定します。したがって、PATH 環境変数をファイルに次の形式の行を追加するだけです: PATH=$PATH:/xxx/bin のコードは

2./etc/profile: このファイルは、システムのログイン時に実行される 2 番目のファイルです。システムのユーザーごとに環境情報を設定するファイルで、ユーザーの初回ログイン時に実行されます。そして、/etc/profile.d ディレクトリーの構成ファイルからシェル設定を収集します。 (/etc/profile を使用して、システム全体のすべてのユーザーの環境変数を設定できます。環境変数の期間は永続的です)

3./etc/bashrc: すべてのユーザー用の bash 初期化ファイルです。ここで設定した環境変数は、すべてのユーザーのシェルに適用されます。このファイルは、ユーザーがシェルを開くたびに実行されます。 (つまり、新しいターミナルが開かれるたびに、/etc/bashrc が実行されます)。

ユーザーレベル (このファイルはホームディレクトリにあります):

1.~/.profile: 現在ログインしているユーザーに対応するプロファイル ファイル。現在のユーザーの個人作業環境をカスタマイズするために使用されます (変数は永続的です)。各ユーザーはこのファイルを使用して、自分専用のシェルに入ることができます。情報、ユーザーがログインすると、このファイルは 1 回だけ実行されます! デフォルトでは、いくつかの環境変数が設定され、ユーザーの .bashrc ファイルが実行されます。これは、個人設定を配置するための推奨される場所です。

2.~/.bashrc: このファイルには、bashshell に固有の bash 情報が含まれています。このファイルは、ログイン時および新しいシェルが開かれるたびに読み取られます。 (~/.bashrc は現在のユーザー専用であり、変数のライフサイクルは永続的です)

シェルを開くたびにこのファイルが一度読み取られるため、ここに置くことはお勧めできません。

Linux システムでは、デフォルトのシェルは何ですか? 効率は確実に向上します。影響を受ける。

3.~/.bash_profileor~./bash_login:~/.bash_profile は対話型ログイン モードで実行中の bash に入るのに使用され、~/.bashrc は対話型の非ログイン モードで実行中の bash に入るのに使用されます。 2 つのうちの 2 つはほぼ同じです。 は同じなので、通常は後者が前者を呼び出します。各ユーザーはこのファイルを使用して、自分の用途に固有のシェル情報を入力できます。ユーザーのログイン時に、このファイルは 1 回だけ実行されます。デフォルトでは、いくつかの環境変数を設定し、ユーザーの .bashrc ファイルを実行します。 (~/ ディレクトリに .bash_profile がない場合は、新しいものを作成します) これは、個人設定を配置するための推奨される場所です。

シェルを閉じると、bash_profile で定義されたシステム変数は無効になります。これを行うには、新しいシェルが開かれるたびに、現在のユーザーに対してもsourcebash_profileを実行する必要があります。

4.~/.pam_environment: ユーザーレベルの環境変数設定ファイルですが、テストしていないので動作するかはわかりません。

5.~/.bash_logout: システムを終了する (bashshell を終了する) たびに、このファイルを実行します。さらに、/etc/profile に設定された変数 (グローバル) はすべてのユーザーに影響を与えることができますが、~/.bashrc に設定された変数 (ローカル) は /etc/profile の変数のみを継承できます。これらは「母と子」です。関係。

4. Linux 環境変数ファイルの実行順序

1. Linux にログインするときにファイルを実行するプロセスは次のとおりです:

Linux に初めてログインするとき

Linux システムのデフォルトのシェルは何ですか

,

まず、/etc/profile ファイルを開始します。

その後、ユーザー ディレクトリ内の ~/.bash_profile、~/.bash_login、または ~/.profile ファイルのいずれかを開始します。ホスト ディレクトリ内のファイルの実行順序は次のとおりです:

~/.bash_profile->~/.bash_login->~/.profile。

~/.bash_profile ファイルが存在する場合、通常は ~/.bashrc ファイルが実行されます。

通常、~/.bash_profile ファイルには次のコードがあるためです。

リーリー

~/.bashrc には通常、次のコードが含まれます:

リーリー

したがって、~/.bashrc は /etc/bashrc ファイルを呼び出します。最後に、シェルを終了するときに、~/.bash_logout ファイルが実行されます。

実行順序は次のとおりです:/etc/profile->(~/.bash_profile|~/.bash_login|~/.profile)->~/.bashrc->/etc/bashrc->~/ .bash_logout

/etc/profile や /etc/environment などの各種環境変数設定ファイルの利点

1) まず、exportLANG=zh_CN を /etc/profile に追加し、システムを終了して再度ログインすると、ログイン プロンプトに中国語が表示されます。

2) まず、/etc/profile 内の exportLANG=zh_CN を削除し、/etc/environment に LNAG=zh_CN を追加し、システムを終了して再度ログインすると、ログイン プロンプトが英語で表示されます。

ユーザー環境を改善するプロセスでは、常に /etc/profile が最初に実行され、次に /etc/environment が読み込まれます。

上記のような違いがあるのはなぜですか?最初に /etc/environment を実行してから /etc/profile? を実行する代わりに?

これは、/etc/environment はシステム全体の環境を設定するものであり、/etc/profile はすべてのユーザーの環境を設定するものであり、後者はログインしているユーザーとは関係がなく、前者はログインしているユーザーとは関係ありません。ログインしているユーザーに関係します。

システムアプリケーションの実行はユーザー環境とは無関係かもしれませんが、システム環境に関係しているため、ログイン時に表示される日時情報の表示形式などのプロンプト情報は、関連して、デフォルトの LANG=en_US では、システム環境 LANG=zh_CN の場合、プロンプト情報は英語で表示され、それ以外の場合は英語で表示されます。

ユーザーのシェル初期化では、最初に /etc/profile が実行され、次にファイル /etc/environment が読み取られます。システム全体では、/etc/environment が最初に実行されます。これは正しい理解ですか?

システムにログインするときの順序は次のとおりです:

/etc/enviroment-->/etc/profile-->HOME/.profile--->HOME/.env (存在する場合)

/etc/profile はすべてのユーザーの環境変数です

/etc/enviroment はシステム環境変数です

システムにログインするときのシェルの読み取り順序は次のようになります:

/etc/profile->/etc/enviroment-->HOME/.profile--->HOME/.env

ユーザー環境とシステム環境の違いが原因であるはずですが、ユーザー環境(/etc/profile)とシステム環境(/etc/environment)で同じ変数の値が異なる場合は、ユーザー環境に基づいてください。

5. Linux における一般的な環境変数とその機能

Linux の一般的な環境変数は次のとおりです:

1.PATH: コマンドの検索パスを指定します

2.HOME: ユーザーのホーム作業ディレクトリ (つまり、ユーザーが Linux システムにログインするときのデフォルトのディレクトリ) を指定します。

3.HISTSIZE: 保存された履歴コマンド レコードの数を指します。

4.LOGNAME: 現在のユーザーのログイン名を指します。

5.HOSTNAME: ホストの名前を参照します。多くのアプリケーションがホスト名を使用したい場合、通常はこの環境変数から取得されます。

6.SHELL: 現在のユーザーが使用しているシェルを指します。

7.LANG/LANGUGE: 言語関連の環境変数。複数の言語を使用するユーザーは、この環境変数を変更できます。

在linux系统,默认的shell是什么_在linux系统,默认的shell是什么_在linux系统,默认的shell是什么

8.MAIL: 現在のユーザーの電子メール保存ディレクトリを指します。

9.PS1: 基本的なコマンド プロンプトは、root ユーザーの場合は #、一般ユーザーの場合は $ です。

10.PS2: 補助プロンプト、デフォルトは「>」です。

注: この環境変数を変更すると、現在のコマンド プロンプトを変更できます。たとえば、次のコマンドはプロンプトを文字列「Hello,MyNewPrompt」に変更します。

#PS1="こんにちは、MyNewPrompt"

注: 上記の変数の名前は固定されていません。たとえば、一部の Linux システムでは、HOSTNAME が HOST

に設定される場合があります。

実際には、私がリストした上記の環境変数はすべてを網羅しているわけではありません。

Linux には、環境変数を変更および表示するコマンドも用意されています。以下にいくつかの例を示します:

1.echo は特定の環境変数値 echo$PATH

を表示します

2.export は、新しい環境変数 exportHELLO="hello" (カンマなしでも可) を設定し、[エクスポート変数名 = 変数値] を直接使用して、シェル コマンド ラインで変数を定義します。この変数は、現在のシェルです。(BASH) またはそのサブシェル (BASH) で有効です。シェルを閉じると、変数は無効になります。新しいシェルを開くと、変数は存在しません。使用する必要がある場合は、再定義する必要があります。

3.env はすべての環境変数を表示します

4.set は、ローカルに定義されたシェル変数 (システムに既に存在する) と、シェル変数を設定するための新しい変数値を表示します。値が指定されていない場合、変数値は NULL に設定されます。

5.unset は環境変数 unsetHELLO

をクリーンアップします。

6.readonly は、読み取り専用の環境変数 readonlyHELLO を設定します。readonly コマンドが使用される場合、変数を変更またはクリアすることはできません

以上がLinux での環境変数の使用は同じライフサイクルによって分割されますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はitcool.netで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。