Linux で環境変数が設定されているかどうかを確認する方法

LinuxLinuxBeginner
今すぐ練習

💡 このチュートリアルは英語版からAIによって翻訳されています。原文を確認するには、 ここをクリックしてください

はじめに

この実験では、Linux で環境変数を操作する基本的な技術を学びます。echo コマンドを使用して特定の変数の値を表示する方法、printenv コマンドを使用して変数が設定されているかどうかを確認しその値を表示する方法、および set コマンドを使用して現在設定されているすべての環境変数をリストする方法を調べます。これらのスキルは、Linux シェルとシステム環境を理解し、それらとやり取りするために不可欠です。


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL linux(("Linux")) -.-> linux/BasicSystemCommandsGroup(["Basic System Commands"]) linux(("Linux")) -.-> linux/UserandGroupManagementGroup(["User and Group Management"]) linux/BasicSystemCommandsGroup -.-> linux/echo("Text Display") linux/UserandGroupManagementGroup -.-> linux/env("Environment Managing") linux/UserandGroupManagementGroup -.-> linux/set("Shell Setting") subgraph Lab Skills linux/echo -.-> lab-558782{{"Linux で環境変数が設定されているかどうかを確認する方法"}} linux/env -.-> lab-558782{{"Linux で環境変数が設定されているかどうかを確認する方法"}} linux/set -.-> lab-558782{{"Linux で環境変数が設定されているかどうかを確認する方法"}} end

echo で変数を表示する

このステップでは、echo コマンドを使用して変数の値を表示する方法を学びます。Linux の変数は、シェルや他のプログラムがアクセスして使用できる情報を格納するために使用されます。

よく遭遇する変数の 1 つが $HOME で、これはホームディレクトリへのパスを格納しています。その値を表示してみましょう。

ターミナルに以下のコマンドを入力し、Enter キーを押します。

echo $HOME

ターミナルにホームディレクトリへのパスが表示されるはずです。この環境では通常 /home/labex となります。

/home/labex

変数名の前の $ 記号は重要です。これは、変数の を表示したいことをシェルに伝えるもので、リテラル文字列 "$HOME" ではないことを示します。

では、存在しない変数を表示してみましょう。

このコマンドを入力し、Enter キーを押します。

echo $MY_VARIABLE

何も出力が表示されません。これは、変数 MY_VARIABLE が設定されていないため、その値が空であるからです。

一度に複数の変数を表示することもできます。

echo $HOME $USER

これにより、$HOME 変数の値の後に $USER 変数の値(ユーザー名である labex)が表示されます。

/home/labex labex

変数の表示方法を理解することは、Linux における基本的なスキルです。なぜなら、変数はスクリプト作成やシステム設定で広く使用されるからです。

続ける をクリックして次のステップに進みます。

printenv で変数を確認する

前のステップでは、echo を使って変数の値を表示しました。環境変数を操作するためのもう 1 つの便利なコマンドが printenv です。

printenv は、環境変数の値を表示するために特別に設計されたコマンドです。環境変数は、システム上で実行されているプロセスが利用できる特殊なタイプの変数です。

printenv を使って $USER 変数の値を表示してみましょう。

ターミナルに以下のコマンドを入力し、Enter キーを押します。

printenv USER

ターミナルにユーザー名 labex が表示されるはずです。

labex

printenv を使用するときは、変数名の前に $ 記号を使用しないことに注意してください。printenv は引数として変数名そのものを期待します。

printenv を使って存在しない変数を表示しようとするとどうなるでしょうか?

このコマンドを入力し、Enter キーを押します。

printenv MY_VARIABLE

echo の場合と同様に、変数 MY_VARIABLE が環境変数として設定されていないため、何も出力が表示されません。

echo は任意の変数を表示できますが、printenv は環境変数専用です。多くの場合、どちらを使っても構いませんが、環境変数を操作したい場合は printenv が好まれることが多いです。

続ける をクリックして次に進みます。

set コマンドですべての変数を一覧表示する

前のステップでは、echoprintenv を使って個々の変数を表示する方法を学びました。では、現在のシェル環境で設定されている すべての 変数を見たい場合はどうすればよいでしょうか?

引数なしで set コマンドを使用すると、環境変数やシェル固有の変数を含むすべてのシェル変数が一覧表示されます。

ターミナルに以下のコマンドを入力し、Enter キーを押します。

set

多数の変数とその値が表示されます。この出力には、環境変数(HOMEUSERPATH など)と現在のシェルセッションに固有の変数が含まれています。

...
HOME=/home/labex
HOSTNAME=...
HOSTTYPE=x86_64
...
LANG=C.UTF-8
...
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin
...
SHELL=/usr/bin/zsh
...
USER=labex
...

出力はかなり長くなることがあります。スクロールして、環境でデフォルトで設定されているさまざまな変数を確認することができます。

set の出力と printenv の出力(引数なしで printenv を実行した場合)を比較すると、set の方がより多くの変数が含まれていることに気づくでしょう。これは、set はすべてのシェル変数を表示するのに対し、printenv は環境変数のみを表示するからです。

Linux の理解を深めるにあたり、シェル変数と環境変数の違いを理解することは重要です。環境変数は子プロセスに引き継がれますが、シェル変数は通常、現在のシェルセッションにローカルです。

これで、Linux で変数を操作する 3 つの方法を学びました。echo(個々の変数を表示するため)、printenv(環境変数を表示するため)、そして set(すべてのシェル変数を一覧表示するため)です。

続ける をクリックしてこの実験を完了します。

まとめ

この実験では、Linux で環境変数を操作する基本的な方法を学びました。まず、$ 接頭辞を付けた echo コマンドを使って特定の変数の値を表示する方法を調べ、設定されていない変数は何も出力されないことを理解しました。また、echo を使って複数の変数を同時に表示する練習も行いました。その後、環境変数の値を確認および表示するための専用ツールである printenv コマンドを学びました。