LinuCレベル1 101試験の例題と解説
1.03.1コマンドラインの操作
LinuCレベル1 101試験の出題範囲から「1.03.1 コマンドラインの操作」についての例題を解いてみます。
ここでは、setコマンドの意味や操作について確認しておきましょう。
例題
シェル変数の定義を確認したい場合、使用するコマンドを選択してください。
- env
- export
- set
- 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研究室 宮本 郁実