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

1.06.1シェル環境のカスタマイズ

LinuCレベル1 102試験の出題範囲から「1.06.1 シェル環境のカスタマイズ」についての例題を解いてみます。
ここでは、~/.bashrcファイルとシェル変数について確認しておきましょう。

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


例題

testユーザで以下のコマンドを実行し、再度ログインを行う。
このとき、testユーザへの影響として正しいものをすべて選択してください。

$ echo "HISTSIZE=0" >> ~/.bashrc
  1. コマンドプロンプトの表示が「0」になる。
  2. historyコマンドを実行しても、何も出力されない。
  3. コマンドの実行履歴が、ファイルに書き込まれない。
  4. 影響はない

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


解答と解説

正解は
「2. historyコマンドを実行しても、何も出力されない。」
「3. コマンドの実行履歴が、ファイルに書き込まれない。」
です。

「~/.bashrc」ファイルは、ユーザのログインなどでbashが起動される際に実行されます。

ユーザのホームディレクトリに配置され、各ユーザ毎にシェル変数などの設定を行うことができます。シェル変数とは、現在実行しているシェルでのみ有効な変数です。

historyコマンドは、現在のシェルのコマンドの実行履歴を、標準出力に出力するコマンドです。

例題では、「HISTSIZE」というシェル変数の設定を行っています。「HISTSIZE」は、bashのシェル変数の1つで、コマンドの実行履歴を保存する数を指定することができます。0を指定すると、コマンドの実行履歴が保存されなくなるため、「history」コマンドを実行しても、コマンドの実行履歴が出力されなくなります。

「HISTSIZE」と関連したシェル変数も併せて解説します。

HISTFILE
コマンドの実行履歴を保存するファイルを指定することができます。多くの場合、「~/.bash_history」が指定されています。
例題のように、HISTSIZEに0が指定されていると、コマンドの実行履歴が存在しないため、HISTFILEで指定したファイルには何も書き込まれません。

HISTFILESIZE
上述した「HISTFILE」で指定されたファイルに、コマンドの実行履歴を何行分保存するかを指定することができます。指定した行数になるように、古い履歴から削除されます。0を指定した場合は、コマンドの実行履歴が「HISTFILE」で指定されたファイルに残らない動作になります。

また、HISTFILESIZEの指定が無い場合は、HISTSIZEと同じ値が指定されます。

なお、HISTFILESIZEが0、HISTSIZEが0以外の場合は、「history」コマンドを実行すると、コマンドの実行履歴は表示されるが、「HISTFILE」で指定されたファイルには、コマンドの実行履歴が保存されない、という動作になります。

「HISTSIZE」と関連したシェル変数以外で、代表的なシェル変数も解説します。

PS1
コマンドプロンプトに表示される文字列を指定することができます。

PATH
シェルがコマンドを探すディレクトリを指定します。コロン区切りでディレクトリのパスを指定します。

書式は以下の通りです。

PATH=/usr/local/bin:/usr/sbin:/usr/bin

PATHの設定を行うことで、指定したディレクトリの直下に配置されたスクリプトファイルは、ファイル名を指定するだけで実行することができます。

上述したシェル変数以外にも、多くの種類があるため、併せて確認しておきましょう。

例題の選択肢について解説します。

1.コマンドプロンプトの表示が「0」になる。
コマンドプロンプトを定義するシェル変数は、「PS1」のため不正解です。

2.historyコマンドを実行しても、何も出力されない。
正しい選択肢です。

3.コマンドの実行履歴が、ファイルに書き込まれない。
正しい選択肢です。

4.影響はない
誤った選択肢のため、不正解です。

~/.bashrcファイルとシェル変数を利用することで、ユーザ毎に様々な設定を行うことができます。利用可能なシェル変数や、その機能を理解して、適切な設定が行えるようにしておきましょう。


例題作成者

株式会社デージーネット 経営企画室 宮地智哉

ページトップへ