LinuCレベル1 101試験の例題と解説
1.03.1コマンドラインの操作
LinuCレベル1 101試験の出題範囲から、「1.03.1 コマンドラインの操作」についての例題を解いてみます。exportコマンドについて確認しておきましょう。
例題
exportコマンドの説明として間違っているものを選択してください。
- 環境変数の一覧を表示することができる
- シェル変数を環境変数に昇格させることができる
- 環境変数を設定すると同時に値を格納することができる
- シェル変数を設定すると同時に値を格納することができる
※この例題は実際の試験問題とは異なります。
解答と解説
正解は、「4. シェル変数を設定すると同時に値を格納することができる」です。
シェル変数とは、現在動作しているシェルでしか参照ができない変数です。
シェル変数を設定するには、「変数名=値」とするだけで設定することが可能です。
$ TEST=test ←シェル変数を設定
$ echo $TEST ←変数の値を表示
test
$ bash ←新しいシェルを起動
$ echo $TEST ←変数の値を表示
←新しいシェルでは参照できない
一方、環境変数は、現在動作しているシェルだけでなく、そのシェルが呼び出した子プロセスでも利用できます。
環境変数は、exportコマンドを用いて設定することが可能です。
$ export TEST=test ←環境変数を設定
$ echo $TEST ←変数の値を表示
test
$ bash ←新しいシェルを起動
$ echo $TEST ←変数の値を表示
test ←環境変数なので参照可能
このように、「export 変数名=値」とすることで、環境変数を定義することが可能です。
それでは選択肢を見ていきます。
1.環境変数の一覧を表示することができる
正しい説明です。
exportコマンドを引数なしで実行した場合、設定されている環境変数の一覧を表示することができます。
$ export
declare -x HISTCONTROL="ignoredups"
declare -x HISTSIZE="1000"
declare -x HOME="/home/user"
declare -x HOSTNAME="linuc"
declare -x LANG="ja_JP.utf8"
:
(以下略)
:
2.シェル変数を環境変数に昇格させることができる
正しい説明です。
「export 変数名」とすることで、シェル変数を環境変数に昇格させることができます。
$ TEST2=test2 ←シェル変数を設定
$ export | grep TEST2 ←環境変数に設定されていないことを確認
$
$ export TEST2 ←シェル変数を環境変数に昇格
$ export | grep TEST2 ←環境変数に設定されたことを確認
declare -x TEST2="test2"
$ bash ←新しいシェルを起動
$ echo $TEST2 ←変数の値を表示
test2 ←環境変数なので参照可能
3.環境変数を設定すると同時に値を格納することができる
正しい説明です。
前半の解説で説明した通り、「export 変数名=値」とすることで、環境変数を設定すると同時に値を格納することが可能です。
$ export TEST3=test3 ←環境変数を設定
$ export | grep TEST3 ←環境変数に設定されたことを確認
declare -x TEST3="test3"
4.シェル変数を設定すると同時に値を格納することができる
間違った説明です。
シェル変数を設定すると同時に値を格納するには、exportコマンドを使わず、「変数名=値」とするだけで設定できます。
$ TEST4=test4 ←シェル変数を設定
$ echo $TEST4 ←変数の値を表示
test4
今回は、間違った説明を答える問題ですので、「4. シェル変数を設定すると同時に値を格納することができる」が正解となります。
環境変数は、現在のシェルだけでなく、そのシェルから呼びだされた子プロセスや、プログラムからも参照できる便利な変数です。また、システムのロケールを設定する「LANG」や、パスを設定する「PATH」など、システムの挙動を決定する環境変数もあります。
現在設定されている環境変数を参照し、必要に応じて適切に変更できるようにしておきましょう。
例題作成者
株式会社デージーネット OSS研究室 橋本知里