GNU/Linux >> Linux の 問題 >  >> Linux

Linuxでローカル、ユーザー、およびシステム全体の環境変数を設定および設定解除する方法

環境変数 シェルで定義され、実行中にプログラムが必要とするいくつかの特別な変数です。それらは、システム定義またはユーザー定義にすることができます。システム定義変数は、システムによって設定され、システムレベルのプログラムによって使用される変数です。

たとえばPWDコマンドは、現在の作業ディレクトリを格納するために使用される非常に一般的なシステム変数です。ユーザー定義変数は通常、現在のシェルに対して一時的に、または永続的に、ユーザーによって設定されます。環境変数の設定と設定解除の全体的な概念は、いくつかのファイルのセットといくつかのコマンドおよび異なるシェルを中心に展開されます。

大まかに言うと、環境変数には次の3つのタイプがあります。

1。ローカル環境変数

現在のセッション用に定義されたもの。これらの環境変数は、リモートログインセッションであれローカルターミナルセッションであれ、現在のセッションまでしか持続しません。これらの変数は構成ファイルで指定されておらず、特別なコマンドセットを使用して作成および削除されます。

2。ユーザー環境変数

これらは、特定のユーザーに対して定義され、ユーザーがローカルターミナルセッションを使用してログインするたび、またはそのユーザーがリモートログインセッションを使用してログインするたびにロードされる変数です。これらの変数は通常、次の構成ファイルに設定され、そこからロードされます: .bashrc .bash_profile .bash_login .profile ユーザーのホームディレクトリにあるファイル。

3。システム全体の環境変数

これらは、システム全体で、つまりそのシステムに存在するすべてのユーザーが利用できる環境変数です。これらの変数は、次のディレクトリおよびファイルに存在するシステム全体の構成ファイルに存在します: / etc / environment / etc / profile /etc/profile.d/ /etc/bash.bashrc 。これらの変数は、システムの電源がオンになり、ユーザーがローカルまたはリモートでログインするたびに読み込まれます。

ユーザー全体およびシステム全体の構成ファイルについて

ここでは、システム全体またはユーザー固有の環境変数を保持する上記のさまざまな構成ファイルについて簡単に説明します。

.bashrc

このファイルは、ユーザーが新しいローカルセッションを作成するたびに、つまり簡単に言えば、新しいターミナルを開くたびに読み込まれるユーザー固有のファイルです。このファイルで作成されたすべての環境変数は、新しいローカルセッションが開始されるたびに有効になります。

.bash_profile

このファイルは、ユーザー固有のリモートログインファイルです。このファイルにリストされている環境変数は、ユーザーがリモートでログインするたびに、つまりsshセッションを使用して呼び出されるたびに呼び出されます。このファイルが存在しない場合、システムは .bash_loginのいずれかを探します または.profile ファイル。

/ etc / environment

このファイルは、環境変数を作成、編集、または削除するためのシステム全体のファイルです。このファイルで作成された環境変数は、ローカルとリモートの両方で、すべてのユーザーがシステム全体からアクセスできます。

/etc/bash.bashrc

システム全体のbashrc ファイル。このファイルは、ユーザーごとに1回ロードされ、そのユーザーがローカルターミナルセッションを開くたびにロードされます。このファイルで作成された環境変数は、すべてのユーザーがアクセスできますが、ローカルターミナルセッションを介してのみアクセスできます。そのマシン上のユーザーがリモートログインセッションを介してリモートでアクセスされる場合、これらの変数は表示されません。

/ etc / profile

システム全体のプロファイルファイル。このファイルで作成されたすべての変数には、システム上のすべてのユーザーがアクセスできますが、そのユーザーのセッションがリモートで呼び出された場合、つまりリモートログインを介した場合に限ります。このファイルの変数は、ローカルログインセッションではアクセスできません。つまり、ユーザーがローカルシステムで新しい端末を開いたときです。

注 :システム全体を使用して作成された環境変数 またはユーザー全体 構成ファイルは、これらのファイルからのみ削除することで削除できます。これらのファイルを変更するたびに、ログアウトして再度ログインするか、端末で次のコマンドを入力して変更を有効にします。

$ source <file-name>

Linuxでローカルまたはセッション全体の環境変数を設定または設定解除する

ローカル環境変数 次のコマンドを使用して作成できます:

$ var=value 
OR
$ export var=value

これらの変数はセッション全体であり、現在のターミナルセッションでのみ有効です。これらのセッション全体の環境変数をクリアするには、次のコマンドを使用できます。

1。 envの使用

デフォルトでは、 "env" コマンドは、現在のすべての環境変数を一覧表示します。ただし、'-i'と一緒に使用する場合 スイッチを押すと、すべての環境変数が一時的にクリアされ、すべての環境変数がない場合でも、ユーザーは現在のセッションでコマンドを実行できます。

$ env –i [Var=Value]… command args…

ここでは、 var =value このコマンドでのみ使用するローカル環境変数に対応します。

$ env –i bash

一時的に環境変数を持たないbashシェルを提供します。ただし、シェルを終了すると、すべての変数が復元されます。

2。 unsetを使用する

ローカル環境変数をクリアする別の方法は、unsetコマンドを使用することです。ローカル環境変数の設定を一時的に解除するには、

$ unset <var-name>

ここで、 var-name 設定を解除またはクリアするローカル変数の名前です。

3。変数名を「」に設定します

もう1つのあまり一般的ではない方法は、クリアする変数の名前を''に設定することです。 (空)。これにより、アクティブになっている現在のセッションのローカル変数の値がクリアされます。

注 –システム変数またはユーザー環境変数で遊んだり、値を変更したりすることもできますが、変更は現在のターミナルセッションにのみ反映され、永続的ではありません。

Linuxでユーザー全体およびシステム全体の環境変数を作成する方法を学ぶ

このセクションでは、以下の例を使用して、Linuxでローカル、ユーザー、およびシステム全体の環境変数を設定または設定解除する方法を学習します。

1。 Linuxでのローカル変数の設定と設定解除

a。) ここでは、ローカル変数 VAR1を作成します 任意の値に設定します。次に、unsetを使用してそのローカル変数を削除し、最後にその変数を削除します。

$ VAR1='TecMint is best Site for Linux Articles'
$ echo $VAR1
$ unset VAR1
$ echo $VAR1

b。) ローカル変数を作成する別の方法は、 exportを使用することです。 指図。作成されたローカル変数は、現在のセッションで使用できます。変数の設定を解除するには、変数の値を''に設定するだけです。 。

$ export VAR='TecMint is best Site for Linux Articles'
$ echo $VAR
$ VAR=
$ echo $VAR

c。) ここでは、ローカル変数 VAR2を作成しました 値に設定します。次に、すべてのローカルおよびその他の環境変数を一時的にクリアするコマンドを実行するために、'env –i'を実行しました。 指図。ここでのこのコマンドは、他のすべての環境変数をクリアすることによってbashシェルを実行しました。 'exit'を入力した後 呼び出されたbashシェルでは、すべての変数が復元されます。

$ VAR2='TecMint is best Site for Linux Articles'
$ echo $VAR2
$ env -i bash
$ echo $VAR2   

2。 Linuxでのユーザー全体の環境変数の設定と設定解除

a。) .bashrcを変更します 追加する必要のある環境変数をエクスポートまたは設定するには、ホームディレクトリのファイルを作成します。その後、ソース 変更を有効にするためのファイル。次に、変数('CD' 私の場合)、有効になります。この変数は、このユーザーの新しい端末を開くたびに使用できますが、リモートログインセッションでは使用できません。

$ vi .bashrc

次の行を.bashrcに追加します 下部にファイルがあります。

export CD='This is TecMint Home'

次のコマンドを実行して、新しい変更を加えてテストします。

$ source .bashrc 
$ echo $CD

この変数を削除するには、 .bashrcの次の行を削除するだけです。 ファイルを作成して再ソースします:

b。) リモートログインセッションで使用できる変数を追加するには(つまり、リモートシステムからユーザーにsshを実行する場合)、 .bash_profileを変更します。 ファイル。

$ vi .bash_profile

次の行を.bash_profileに追加します 下部にファイルがあります。

export VAR2='This is TecMint Home'

このファイルをソーシングする場合、このユーザーにsshを実行すると変数が使用可能になりますが、新しいローカル端末を開くときは使用できません。

$ source .bash_profile 
$ echo $VAR2

ここでは、 VAR2 は最初は利用できませんが、ローカルホストでユーザーにsshを実行すると、変数が利用可能になります。

$ ssh [email protected]
$ echo $VAR2

この変数を削除するには、 .bash_profileの行を削除するだけです。 追加したファイルを再ソースします。

注 :これらの変数は、現在のユーザーにログインするたびに使用できますが、他のユーザーには使用できません。

3。 Linuxでのシステム全体の環境変数の設定と設定解除

a。) システム全体のログインなし変数(つまり、いずれかのユーザーが新しいターミナルを開いたときにすべてのユーザーが使用できるが、マシンのユーザーがリモートアクセスされているときは使用できない変数)を追加するには、変数を/etc/bash.bashrc ファイル。

export VAR='This is system-wide variable'

その後、ファイルを入手します。

$ source /etc/bash.bashrc 

これで、この変数は、すべてのユーザーが新しい端末を開いたときに使用できるようになります。

$ echo $VAR
$ sudo su
$ echo $VAR
$ su -
$ echo $VAR

ここでは、同じ変数を rootで使用できます 通常のユーザーと同様にユーザー。これは、他のユーザーにログインして確認できます。

b。) マシン上のユーザーのいずれかがリモートでログインしているときに環境変数を使用できるようにしたいが、ローカルマシンで新しい端末を開いていない場合は、ファイルを編集する必要があります– '/ etc / profile'

export VAR1='This is system-wide variable for only remote sessions'

変数を追加したら、ファイルを再ソースします。その後、変数が使用可能になります。

$ source /etc/profile
$ echo $VAR1

この変数を削除するには、 / etc / profileから行を削除します ファイルを作成して再ソースします。

c。) ただし、システム全体で利用できる環境を追加する場合は、リモートログインセッションとすべてのユーザーのローカルセッション(つまり、新しいターミナルウィンドウを開く)の両方で、変数をにエクスポートするだけです。 / etc / environment ファイル。

export VAR12='I am available everywhere'

その後、ファイルを入手するだけで、変更が有効になります。

$ source /etc/environment
$ echo $VAR12
$ sudo su
$ echo $VAR12
$ exit
$ ssh localhost
$ echo $VAR12

ここで、環境変数は通常のユーザー、rootユーザー、およびリモートログインセッション(ここでは localhost )で使用できます。 。

この変数をクリアするには、 / etc / environmentのエントリを削除するだけです。 ファイルを作成して再ソースするか、再度ログインします。

注 :ファイルをソースすると、変更が有効になります。ただし、そうでない場合は、ログアウトしてから再度ログインする必要があります。

結論

したがって、これらは環境変数を変更するためのいくつかの方法です。同じための新しくて興味深いトリックを見つけた場合は、コメントに記載してください。


Linux
  1. Linux – Pythonで「http_proxy」環境変数の設定を解除する方法は?

  2. Linux で環境変数を設定、一覧表示、および削除する方法

  3. Linux エクスポート コマンドの例 (環境変数の設定方法)

  1. Linux での「su」および「sudo」によるユーザー環境変数

  2. Android と Linux の間で Wifi-Direct 接続をセットアップする方法

  3. 多くの環境変数の設定を解除する方法

  1. Linuxでシステムホスト名を設定または変更する方法

  2. Linux環境変数:LinuxVPSでの読み取りと設定の方法

  3. Linuxで環境変数とシェル変数を設定/作成する方法