アンドロイド

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

目次:

Anonim

LinuxおよびUnixベースのシステムでは、環境変数は動的な名前付きの値のセットであり、システム内に格納され、シェルまたはサブシェルで起動されたアプリケーションによって使用されます。 簡単に言えば、環境変数は名前と関連する値を持つ変数です。

環境変数を使用すると、システムの動作とシステム上のアプリケーションの動作をカスタマイズできます。 たとえば、環境変数には、デフォルトのテキストエディタまたはブラウザ、実行可能ファイルへのパス、またはシステムロケールとキーボードレイアウト設定に関する情報を格納できます。

このガイドでは、環境変数とシェル変数の読み取りと設定について説明します。

環境変数とシェル変数

変数の形式は次のとおりです。

KEY=value KEY="Some other value" KEY=value1:value2

  • 変数の名前では大文字と小文字が区別されます。 慣例により、環境変数には大文字の名前を付ける必要があります。変数に複数の値を割り当てる場合は、コロン : 文字で区切る必要があります。 = 記号の前後にスペースはありません。

変数は、環境変数とシェル変数の2つの主要なカテゴリに分類できます。

環境変数は、システム全体で使用可能な変数であり、生成されたすべての子プロセスとシェルによって継承されます。

シェル変数は、現在のシェルインスタンスにのみ適用される変数です。 zsh bash などの各シェルには、独自の内部シェル変数のセットがあります。

Linuxで環境変数を一覧表示および設定できるコマンドがいくつかあります。

  • env –このコマンドを使用すると、現在の環境を変更せずに、カスタム環境で別のプログラムを実行できます。 引数なしで使用すると、現在の環境変数のリストが出力されます。 printenv –このコマンドは、すべてまたは指定された環境変数を出力します。 set –コマンドはシェル変数を設定または設定解除します。 引数なしで使用すると、環境変数とシェル変数、およびシェル関数を含むすべての変数のリストが出力されます。 unset –コマンドはシェル変数と環境変数を削除します。 export –コマンドは環境変数を設定します。

環境変数を一覧表示する

環境変数を表示するために最も使用されるコマンドは printenv です。 変数の名前が引数としてコマンドに渡される場合、その変数の値のみが表示されます。 引数を指定しない場合、 printenv はすべての環境変数のリストを1行に1変数ずつ出力します。

たとえば、 HOME 環境変数の値を表示するには、次を実行します。

printenv HOME

出力には、現在ログインしているユーザーのパスが出力されます。

/home/linuxize

printenv コマンドに複数の引数を渡すこともできます。

printenv LANG PWD

en_US /home/linuxize

printenv

出力は次のようになります。

LS_COLORS=rs=0:di=01;34:ln=01;36:mh=00:pi=40;33:so=01;35;… LESSCLOSE=/usr/bin/lesspipe %s %s LANG=en_US S_COLORS=auto XDG_SESSION_ID=5 USER=linuxize PWD=/home/linuxize HOME=/home/linuxize SSH_CLIENT=192.168.121.1 34422 22 XDG_DATA_DIRS=/usr/local/share:/usr/share:/var/lib/snapd/desktop SSH_TTY=/dev/pts/0 MAIL=/var/mail/linuxize TERM=xterm-256color SHELL=/bin/bash SHLVL=1 LANGUAGE=en_US: LOGNAME=linuxize XDG_RUNTIME_DIR=/run/user/1000 PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin LESSOPEN=| /usr/bin/lesspipe %s _=/usr/bin/printenv

以下は、最も一般的な環境変数の一部です。

  • USER 現在ログインしているユーザー。 HOME 現在のユーザーのホームディレクトリ。 EDITOR 使用されるデフォルトのファイルエディター。 これは、ターミナルで edit を入力 edit ときに使用されるエディターです。 SHELL -bashやzshなど、現在のユーザーのシェルのパス。 LOGNAME 現在のユーザーの名前。 PATH コマンドの実行時に検索されるディレクトリのリスト。 コマンドを実行すると、システムはこれらのディレクトリをこの順序で検索し、最初に見つかった実行可能ファイルを使用します。 LANG 現在のロケール設定。 TERM 現在の端末エミュレーション。 MAIL 現在のユーザーのメールが保存されている場所。

printenv および env コマンドは、環境変数のみを出力します。 環境、シェルと変数、シェル関数を含むすべての変数のリストを取得したい場合は、 set コマンドを使用できます。

set

BASH=/bin/bash BASHOPTS=checkwinsize:cmdhist:complete_fullquote:expand_aliases:extglob:extquote:force_fignore:histappend:interactive_comments:login_shell:progcomp:promptvars:sourcepath BASH_ALIASES=() BASH_ARGC=() BASH_ARGV=()

このコマンドはすべての変数の大きなリストを表示するため、おそらく less コマンドに出力をパイプする必要があります。

set | less

echoコマンドを使用して、シェル変数を出力することもできます。 たとえば、 BASH_VERSION 変数の値を出力するには、次を実行します。

echo $BASH_VERSION

4.4.19(1)-release

環境変数の設定

シェル変数と環境変数の違いをわかりやすく説明するために、シェル変数の設定から始めて、環境変数に進みます。

MY_VAR という名前で MY_VAR 値を持つ新しいシェル変数を作成するには、 Linuxize ように入力します。

MY_VAR='Linuxize'

変数が設定されていることを確認するには、grep set | grep MY_VAR setコマンドの出力をフィルタリングする echo $MY_VAR を使用します set | grep MY_VAR set | grep MY_VAR

echo $MY_VAR

Linuxize

printenv コマンドを使用して、この変数が環境変数であるかどうかを確認します。

printenv MY_VAR

出力は空になり、変数が環境変数ではないことがわかります。

また、サブシェルで変数を印刷しようとすると、空の出力が得られます。

bash -c 'echo $MY_VAR'

export コマンドは、環境変数を設定するために使用されます。

環境変数を作成するには、単にシェル変数を環境変数としてエクスポートします。

export MY_VAR

これを確認するには、次を実行します:

printenv MY_VAR

Linuxize

bash -c 'echo $MY_VAR'

Linuxize

環境変数を1行で設定することもできます。

export MY_NEW_VAR="My New Var"

この方法で作成された環境変数は、現在のセッションでのみ使用できます。 新しいシェルを開くか、ログアウトすると、すべての変数が失われます。

永続的な環境変数

環境変数を永続化するには、bash構成ファイルでこれらの変数を定義する必要があります。 ほとんどのLinuxディストリビューションでは、新しいセッションを開始すると、次のファイルから環境変数が読み取られます。

  • /etc/environment このファイルを使用して、システム全体の環境変数を設定します。 このファイルの変数は、次の形式で設定されます。

    FOO=bar VAR_TEST="Test Var"

    /etc/profile このファイルに設定された変数は、bashログインシェルに入るたびにロードされます。 このファイルで環境変数を宣言するときは、 export コマンドを使用する必要があります。

    export JAVA_HOME="/path/to/java/home" export PATH=$PATH:$JAVA_HOME/bin

    ユーザーごとのシェル固有の構成ファイル。 たとえば、Bashを使用している場合、 ~/.bashrc 変数を宣言でき ~/.bashrc

    export PATH="$HOME/bin:$PATH"

新しい環境変数を現在のシェルセッションに読み込むには、 source コマンドを使用し source

source ~/.bashrc

結論

このガイドでは、環境変数とシェル変数を設定および一覧表示する方法を示しました。

ご質問がある場合は、コメントをお気軽にお寄せください。

ターミナル