[Linux] envコマンドの使い方 – 環境変数の設定・確認

envコマンドは、Linuxで環境変数を設定・確認するために使用されます。

引数なしで実行すると、現在のシェル環境に設定されているすべての環境変数を一覧表示します。

また、envを使って一時的に環境変数を設定し、その設定を反映した状態でコマンドを実行することも可能です。

例えば、env VAR=value commandの形式で、VARという環境変数を設定し、その後にcommandを実行します。

この記事でわかること
  • envコマンドの基本的な使い方
  • 環境変数の設定と確認方法
  • 一時的な環境変数の削除方法
  • envコマンドのオプションの活用法
  • 環境変数を使ったプログラム実行の例

目次から探す

envコマンドとは

envコマンドは、LinuxやUnix系のオペレーティングシステムで使用されるコマンドの一つで、環境変数を操作するためのツールです。

主に、現在の環境変数を表示したり、新しい環境変数を設定したりする際に利用されます。

環境変数とは、システムやアプリケーションの動作に影響を与える設定情報を格納するための変数で、ユーザーのセッションやシステム全体で共有されます。

envコマンドを使うことで、特定の環境変数を持つ状態でコマンドを実行したり、環境変数を一時的に変更したりすることが可能です。

これにより、開発やデバッグの際に、異なる環境設定でプログラムをテストすることが容易になります。

特に、スクリプトやプログラムの実行時に必要な環境変数を指定する際に非常に便利です。

環境変数の確認方法

現在の環境変数を一覧表示する

現在の環境変数を一覧表示するには、envコマンドを使用します。

このコマンドを実行すると、システムに設定されているすべての環境変数とその値が表示されます。

以下はその実行例です。

env
SHELL=/bin/bash
WSL2_GUI_APPS_ENABLED=1
WSL_DISTRO_NAME=Ubuntu
NAME=Allity2024
PWD=/
LOGNAME=geekblocks
HOME=/home/geekblocks
LANG=C.UTF-8
WSL_INTEROP=/run/WSL/280_interop
...省略

特定の環境変数を確認する方法

特定の環境変数を確認するには、echoコマンドを使用します。

環境変数名を$で始めて指定することで、その値を表示できます。

例えば、HOME環境変数を確認する場合は以下のようにします。

echo $HOME
/home/your_username

envコマンドとprintenvコマンドの違い

envコマンドとprintenvコマンドは、どちらも環境変数を表示するために使用されますが、以下のような違いがあります。

スクロールできます
コマンド説明
env環境変数を表示し、新しい環境変数を設定してコマンドを実行できる。
printenv環境変数を表示する専用のコマンド。特定の環境変数を指定して表示することも可能。

このように、envはより多機能で、printenvはシンプルに環境変数を表示するためのコマンドです。

環境変数の設定方法

一時的に環境変数を設定する

一時的に環境変数を設定するには、exportコマンドを使用します。

この方法で設定した環境変数は、現在のシェルセッション内でのみ有効です。

以下のように設定できます。

export MY_VAR="一時的な値"

この環境変数は、シェルを閉じると消えます。

確認するには、次のコマンドを実行します。

echo $MY_VAR
一時的な値

複数の環境変数を同時に設定する

複数の環境変数を同時に設定するには、exportコマンドを連続して使用します。

以下のように記述します。

export VAR1="値1" VAR2="値2"

この方法で設定した環境変数も、現在のシェルセッション内でのみ有効です。

確認するには、次のコマンドを実行します。

echo $VAR1
echo $VAR2
値1
値2

環境変数を設定してコマンドを実行する

環境変数を設定した状態で特定のコマンドを実行することも可能です。

以下のように、コマンドの前に環境変数を設定します。

MY_VAR="実行時の値" command_name

この場合、command_nameが実行される際に、MY_VARが設定された状態になります。

環境変数を設定してスクリプトを実行する

スクリプトを実行する際に環境変数を設定することもできます。

以下のように、スクリプトを実行する前に環境変数を設定します。

MY_VAR="スクリプト用の値" ./script.sh

この場合、script.sh内でMY_VARを参照することができ、スクリプトの実行中にその値を使用できます。

環境変数の削除方法

一時的に環境変数を削除する

一時的に環境変数を削除するには、unsetコマンドを使用します。

このコマンドを実行すると、指定した環境変数が現在のシェルセッションから削除されます。

以下のように使用します。

unset MY_VAR

このコマンドを実行した後、MY_VARを確認すると、値は表示されなくなります。

確認するには、次のコマンドを実行します。

echo $MY_VAR
(何も表示されない)

unsetコマンドとの併用

unsetコマンドは、環境変数を削除するための基本的な方法ですが、他のコマンドと併用することで、より効率的に環境変数を管理できます。

例えば、スクリプト内で特定の環境変数を削除したい場合、以下のように記述します。

#!/bin/bash
export MY_VAR="削除前の値"
echo "削除前: $MY_VAR"
unset MY_VAR
echo "削除後: $MY_VAR"

このスクリプトを実行すると、MY_VARが削除される前後の値を確認できます。

削除前: 削除前の値
削除後: (何も表示されない)

このように、unsetコマンドを使用することで、環境変数を簡単に削除することができます。

envコマンドのオプション

-iオプションで環境変数をリセットする

-iオプションを使用すると、環境変数をリセットした状態でコマンドを実行できます。

このオプションを指定すると、現在の環境変数がすべてクリアされ、指定した環境変数のみが有効になります。

以下のように使用します。

env -i MY_VAR="新しい値" command_name

この場合、command_nameMY_VARのみが設定された状態で実行されます。

これにより、他の環境変数の影響を受けずにコマンドを実行することができます。

-uオプションで特定の環境変数を削除する

-uオプションを使用すると、特定の環境変数を削除した状態でコマンドを実行できます。

このオプションを指定することで、指定した環境変数が無効化されます。

以下のように使用します。

env -u MY_VAR command_name

この場合、command_nameMY_VARが削除された状態で実行されます。

これにより、特定の環境変数がコマンドの実行に影響を与えないようにすることができます。

–helpオプションでヘルプを表示する

--helpオプションを使用すると、envコマンドの使い方や利用可能なオプションの一覧を表示できます。

以下のように実行します。

env --help

このコマンドを実行すると、envコマンドの基本的な使い方や、利用できるオプションの説明が表示されます。

これにより、コマンドの詳細を確認しながら、適切に使用することができます。

envコマンドの応用例

特定の環境変数を使ってプログラムを実行する

特定の環境変数を設定した状態でプログラムを実行することができます。

例えば、MY_ENVという環境変数を設定して、my_programを実行する場合、以下のように記述します。

MY_ENV="特定の値" ./my_program

このコマンドを実行すると、my_programMY_ENVが設定された状態で動作します。

これにより、プログラムの動作を特定の環境に合わせて調整することが可能です。

スクリプト内でenvコマンドを活用する

スクリプト内でenvコマンドを活用することで、スクリプトの実行環境を柔軟に設定できます。

以下は、スクリプト内で環境変数を設定し、コマンドを実行する例です。

#!/bin/bash
env MY_VAR="スクリプト用の値" ./another_script.sh

このスクリプトを実行すると、another_script.shMY_VARが設定された状態で実行されます。

これにより、スクリプト間で環境変数を簡単に受け渡すことができます。

システムのデバッグにenvコマンドを使う

envコマンドは、システムのデバッグにも役立ちます。

特定の環境変数を設定した状態でコマンドを実行することで、環境に依存する問題を特定することができます。

例えば、特定のライブラリパスを設定してプログラムを実行する場合、以下のように記述します。

env LD_LIBRARY_PATH="/path/to/libs" ./my_program

このコマンドを実行すると、my_programは指定したライブラリパスを使用して実行されます。

これにより、ライブラリの依存関係に関連する問題を特定しやすくなります。

envコマンドを活用することで、環境に関連する問題のトラブルシューティングが効率的に行えます。

よくある質問

envコマンドで設定した環境変数は永続化されますか?

envコマンドで設定した環境変数は、基本的に一時的なものであり、現在のシェルセッション内でのみ有効です。

シェルを終了すると、設定した環境変数は消えてしまいます。

永続的に環境変数を設定したい場合は、~/.bashrc~/.bash_profileなどの設定ファイルに記述する必要があります。

envコマンドで設定した環境変数は他のシェルに影響しますか?

envコマンドで設定した環境変数は、実行したシェルセッション内でのみ有効であり、他のシェルやプロセスには影響を与えません。

したがって、別のシェルを開いた場合、設定した環境変数は存在しないため、影響を受けることはありません。

envコマンドとsourceコマンドの違いは何ですか?

envコマンドは、環境変数を設定したり表示したりするためのコマンドであり、特定のコマンドを実行する際に環境変数を操作することができます。

一方、sourceコマンドは、指定したスクリプトを現在のシェル環境で実行するためのコマンドです。

sourceを使用すると、スクリプト内で設定された環境変数が現在のシェルに適用されます。

つまり、envは環境変数の管理に特化しているのに対し、sourceはスクリプトの実行に関連しています。

まとめ

この記事では、envコマンドの基本的な使い方や、環境変数の設定・確認・削除方法について詳しく解説しました。

また、envコマンドのオプションや応用例を通じて、実際の利用シーンにおける活用方法も紹介しました。

これらの知識を活かして、シェル環境をより効果的に管理し、プログラムやスクリプトの実行時に必要な環境を整えることができるでしょう。

ぜひ、実際にコマンドを試してみて、環境変数の操作に慣れてみてください。

  • URLをコピーしました!
目次から探す