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

Linuxコマンド演習31

以下のコマンドの演習を行います。

実際にコマンド操作を行いながら、Linuxの操作に慣れていきましょう。

演習01:シェル変数と環境変数の違いを確認します。

・シェル変数と環境変数の違いを確認します。以下のコマンドを実行して確認していきます。

# シェル変数の設定
$ shell_var='shell var'
$ echo $shell_var  # シェル変数の内容を表示
shell var      # シェル変数の出力

# 環境変数への設定
$ export env_var='env var'
$ echo $env_var # 環境変数の内容を表示
env var      # 環境変数の出力
$ bash       # 新しいサブシェルを起動

# サブシェルでの確認
$ echo $shell_var # シェル変数の内容を表示
                   # シェル変数はサブシェルで参照できない
$ echo $env_var  # 環境変数の内容を表示
env var      # 環境変数の出力
$ env_var='env var change'
$ exit   # サブシェルを終了
exit

# 元のシェル
$ echo $env_var # 環境変数の内容を表示
env var      # 値の変更が反映されていない

 シェル変数と環境変数の違いを下図で示します。シェル変数は新たに起動した別のシェルで参照できませんが、環境変数では参照できます。

 ここで注意すべき点は、新しいシェルで環境変数の内容を書き換えても元のシェルでは反映されないということです。環境変数は、あくまで、新たに起動したシェルで引き続き利用される変数で、グローバル変数とは異なる性質を持ちます。

 つまり、シェル変数は単一のシェル内でのみ有効であり、環境変数は関連するプロセス間で情報を共有できるようするためのものということになります。

演習02:環境変数を表示します。

・環境変数を表示します。

環境変数は envコマンドや printenvコマンドを使用して表示できます。

環境変数は envコマンドや printenvコマンドを使用して表示できます。

$ env   # すべての環境変数を表示
(省略)
XDG_RUNTIME_DIR=/run/user/1000
DISPLAY=:0
XDG_CURRENT_DESKTOP=GNOME-Classic:GNOME
COLORTERM=truecolor
XAUTHORITY=/run/gdm/auth-for-user01-p5Gmab/database
_=/usr/bin/printenv
$ printenv   # すべての環境変数を表示
(省略)
XDG_RUNTIME_DIR=/run/user/1000
DISPLAY=:0
XDG_CURRENT_DESKTOP=GNOME-Classic:GNOME
COLORTERM=truecolor
XAUTHORITY=/run/gdm/auth-for-user01-p5Gmab/database
_=/usr/bin/printenv

特定の環境変数を表示するには「printenv VARIABLE_NAME」と環境変数名を指定します。

演習03:シェル変数と環境変数を表示する。

・シェル変数と環境変数を表示します。

シェル変数と環境変数を併せて表示するには、setコマンドを使用します。

$ set   # すべてのシェル変数と環境変数を表示
(省略)
HISTFILE=/home/user01/.bash_history
HISTFILESIZE=1000
HISTSIZE=1000
HOME=/home/user01
HOSTNAME=localhost.localdomain
HOSTTYPE=x86_64
ID=1000
IFS=$' \t\n'
IMSETTINGS_INTEGRATE_DESKTOP=yes
IMSETTINGS_MODULE=none
(省略)