LinuCレベル1 101試験の例題と解説

1.03.1コマンドラインの操作

LinuCレベル1 101試験の出題範囲から「1.03.1 コマンドラインの操作」についての例題を解いてみます。
ここでは、setコマンドの意味や操作について確認しておきましょう。

Linucレベル1 101試験 出題範囲


例題

シェル変数の定義を確認したい場合、使用するコマンドを選択してください。

  1. env
  2. export
  3. set
  4. expand

※この例題は実際の試験問題とは異なります。


解答と解説

正解は、「3. set」です。

setコマンドを使用すると、シェル変数の設定の確認や変更を行うことができます。setコマンドでは、シェル変数と環境変数、両方の一覧を表示することが可能です。

シェル変数とは、その変数を定義したシェルとプロセスでのみ、有効な変数のことです。そのシェルやプロセスを終了すると、シェル変数は失われます。
また、子プロセスからは親プロセスで定義したシェル変数を参照することはできません。

環境変数とは、その変数を定義したシェル上、およびそのシェルで実行されるプログラムすべてで有効な変数のことです。
親プロセスの設定が子プロセスに引き継がれます。

setコマンドの実行例は以下の通りです。
引数を付けず、コマンドを実行すると、シェル変数・環境変数の一覧が表示されます。

$ set
BASH=/bin/bash
BASH_ARGC=()
BASH_ARGV=()
BASH_LINENO=()
:
:

また、一覧ではなく、例えば、「環境変数HOME」の値のみを表示させたい場合、以下のようにechoコマンドを使用します。変数の値を確認する際は、変数名の先頭に「$」を付けます。

$ echo $HOME
/home/xxxxx

変数を削除したい場合は、unsetコマンドを使用します。
書式は以下の通りです。

$ unset 変数名

例えば、TESTという変数名を削除したい場合は、以下のようにコマンドを実行します。

$ unset TEST

setコマンドと一緒に覚えておきましょう。

選択肢の解説は以下です。

1.env
envコマンドは、引数を一切付けずに実行すると、現在指定されている環境変数を一覧表示します。シェル変数の一覧を表示することはできないため、不正解です。

2.export
exportコマンドは、環境変数を追加するコマンドです。よって、不正解です。

exportコマンドを使用して、環境変数を追加するのは、主に以下の2通りの場合があります。
1つ目は、環境変数を追加する場合で、
2つ目は、既存のシェル変数を環境変数に追加する場合です。

1つ目の環境変数を追加する場合についてです。exportを使用して、環境変数を追加したいときは、変数名の後に"="で値を入力して実行します。
書式は以下の通りです。

$ export 変数名=値

例えば、「環境変数TEST、値test」という環境変数を追加したい場合、以下のようにexportコマンドを実行します。

$ export TEST=test

確認方法は、echoコマンドを使用して行います。
例えば、「変数名TEST」の先頭に「$」を付けて実行します。

$ echo $TEST
test

2つ目の既存のシェル変数を環境変数に追加する場合についてです。
すでにシェル変数が設定されているとき、exportコマンドで、その変数を環境変数に追加することができます。
書式は以下の通りです。

$ export 変数名

例えば、「変数名TEST2、値test2」というシェル変数がすでに設定されているとします。シェル変数を確認する場合は、setコマンドを使用して以下のように確認を行います。

$ set | grep TEST2
TEST2=test2

このシェル変数TEST2を環境変数にも追加する場合、以下のようにexportコマンドを実行します。

$ export TEST2

環境変数を確認する場合は、以下のようにenvコマンドを使用して以下のように確認を行います。

$ env | grep TEST2
TEST2=test2

これで、「変数名TEST2、値test2」の環境変数が追加されたことがわかります。

3.set
引数をつけずに実行すると、シェル変数の一覧を確認できるため、正解です。

4.expand
expandコマンドは、標準入力やファイルから入力されたテキストの中にあるタブをスペースに変換するコマンドです。
よって、不正解です。

シェル変数と環境変数の違いを把握した上で、envコマンドやsetコマンドの使用方法を確認しておきましょう。また、exportコマンドやunsetコマンドなど、設定・削除の方法も併せて押さえておきましょう。


例題作成者

株式会社デージーネット OSS研究室 宮本 郁実

ページトップへ