LinuCレベル1 102試験の例題と解説
1.06.1シェル環境のカスタマイズ
LinuCレベル1 102試験の出題範囲から「1.06.1 シェル環境のカスタマイズ」についての例題を解いてみます。
ここでは、コマンドサーチパスについて確認しておきましょう。
例題
現在の設定に加えて、「/usr/sample/bin」というディレクトリにもパスを通すことのできるコマンドを選択してください。
- export PATH=/usr/sample/bin
- export $PATH=/usr/sample/bin
- export PATH=/usr/sample/bin:$PATH
- export $PATH=/usr/sample/bin:PATH
※この例題は実際の試験問題とは異なります。
解答と解説
正解は、「3. export PATH=/usr/sample/bin:$PATH」です。
Linuxでコマンドを実行する際、本来なら「/usr/bin/cd」のようにコマンドがあるディレクトリまですべて含めたフルパスで指定する必要があります。
しかし、よく使用するコマンドを毎回フルパスで指定するのは大変です。そこで利用されるのが、環境変数の「PATH」です。
環境変数「PATH」には、コマンドサーチパスが登録されています。コマンドサーチパスに登録されているディレクトリ配下にあるコマンドは、パスを省略することができます。これにより、コマンドをフルパスで指定しなくても実行することができるようになります。
以下は、環境変数「PATH」に設定されているコマンドサーチパスを確認する方法です。
$ echo $PATH
/home/user/.local/bin:/home/user/bin:/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin
自作したコマンドの場合でも、環境変数「PATH」に登録されているディレクトリに配置することで、フルパスで指定しなくても実行することができます。
しかし、自作したコマンドであることが分かるようにディレクトリを分けたいときもあります。このような場合に、環境変数「PATH」にディレクトリを設定する作業を「パスを通す」と言います。
パスを通すためには、exportコマンドを使って、環境変数「PATH」に対して通したいパスを「:(コロン)」区切りで指定します。
既存の設定に「/usr/sample/bin」ディレクトリを追加する場合は、以下のように設定します。
$ export PATH=/usr/sample/bin:$PATH
再度、環境変数「PATH」に設定されているコマンドサーチパスを確認すると、「/usr/sample/bin」ディレクトリが先頭に追加されていることが確認できます。
$ echo $PATH
/usr/sample/bin:/home/user/.local/bin:/home/user/bin:/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin
それでは、選択肢を見ていきます。
1.export PATH=/usr/sample/bin
不正解です。
環境変数「PATH」に「/usr/sample/bin」ディレクトリを設定することはできますが、設定値に「$PATH:」をつけない場合、既存の設定がなくなってしまいます。
問題文には、「現在の設定に加えて」とあるため、不正解となります。
2.export $PATH=/usr/sample/bin
不正解です。
値の設定時は、変数名の先頭に「$(ドル)」マークはつけません。
「$(ドル)」マークを付けるのは、参照時のみです。
3.export PATH=/usr/sample/bin:$PATH
正解です。
現在の設定($PATH)に「:(コロン)」区切りで「/usr/sample/bin」を記載することで、パスを追加することができます。
4.export $PATH=/usr/sample/bin:PATH
不正解です。
選択肢2の解説と同様、値の設定時は、変数名の先頭に「$(ドル)」マークはつけません。「$(ドル)」マークを付けるのは、参照時のみです。
逆に、設定値として変数を使用する場合は、「$(ドル)」マークを付ける必要があります。
必要に応じてパスを通せるようにしておきましょう。
例題作成者
株式会社デージーネット OSS研究室 橋本知里