このページで解説している内容は、以下の YouTube 動画の解説で見ることができます。

【Linux】環境変数の表示:printenvコマンド

printenv コマンドの概要

 printenv コマンドは、現在のシェルセッションで設定されている環境変数を表示するために使用されます。特定の環境変数の値を表示したり、全ての環境変数を一覧表示したりすることができます。ただし、シェル変数(ローカル変数)は表示できません。環境変数は、システム全体やサブシェルに影響を与える設定値を保持しますが、シェル変数は現在のシェル内でのみ有効です。

【構文】
printenv [変数名]

コマンドの使用例と解説

コマンド結果説明
printenv全ての環境変数とその値が表示される。現在のシェルセッションで設定されている全ての環境変数を表示します。
printenv PATH/usr/local/sbin:/usr/local/bin:...PATH 環境変数の値を表示します。
printenv HOME/home/usernameHOME 環境変数の値を表示します。
printenv NON_EXISTENT_VAR(何も表示されない)存在しない環境変数を指定した場合、何も表示されません。
printenv SHELL_VAR(何も表示されない)シェル変数は表示されません。シェル変数は set コマンドで表示できます。

1. 全ての環境変数を表示する。

・「printenv」コマンドを実行します。

 このコマンドを実行すると、現在のシェルセッションで設定されている全ての環境変数とその値が表示されます。例えば、PATHHOMEUSER などの環境変数が一覧表示されます。

user01@ubuntu-vm:~$ printenv
SHELL=/bin/bash
SESSION_MANAGER=local/ubuntu-vm:@/tmp/.ICE-unix/2490,unix/ubuntu-vm:/tmp/.ICE-unix/2490
QT_ACCESSIBILITY=1
COLORTERM=truecolor
(省略)

2.特定の環境変数を表示する。

・「printenv PATH」コマンドを実行します。

 printenv コマンドに環境変数の名前を引数として渡すと、その特定の環境変数の値だけが表示されます。上記の例では、PATH 環境変数の値が表示されます。

user01@ubuntu-vm:~$ printenv PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/snap/bin

3. 存在しない環境変数を表示しようとする。

・「printenv NON_EXISTENT_VAR」コマンドを実行します。

 存在しない環境変数を指定して printenv コマンドを実行すると、何も表示されません。この場合、printenv コマンドはエラーメッセージを出力せずに終了します。

user01@ubuntu-vm:~$ printenv NON_EXISTENT_VAR

4. シェル変数を表示しようとする。

以下のコマンドを実行します。

  • myShellVar="I am a shell variable"」コマンド
  • printenv myShellVar」コマンド

 シェル変数 myShellVarprintenv コマンドで表示しようとしても、何も表示されません。シェル変数を表示するためには、printenv ではなく set コマンドを使用します。

# シェル変数を定義
user01@ubuntu-vm:~$ myShellVar="I am a shell variable"

# シェル変数を表示しようとする
user01@ubuntu-vm:~$ printenv myShellVar

まとめ

 printenv コマンドは、環境変数の確認に非常に有用です。特定の環境変数の値を確認したり、全ての環境変数を一覧表示することで、システムの設定状況を把握することができます。しかし、シェル変数は表示できないため、シェル変数を確認する際にはset コマンドを使用する必要があります。上記の例と表を参考にして、printenv コマンドを効果的に活用してください。