過去問ドリル

LinuCレベル1 システム管理 問21

システム管理/ローカライゼーションと国際化

シェルスクリプトの中でコマンドを「LANG=C コマンド」の形で実行することがある理由として、最も適切なものはどれか。

当サイトのオリジナル問題(LinuCレベル1の出題範囲「システム管理」に対応。実際の試験問題ではありません)

正解:A

解説

Cロケール(POSIXロケール)はどの環境にも必ず存在する基本のロケールで、メッセージは英語、日付などの書式やソート順も決まった形になります。LANG=Cを指定すれば、利用者ごとのロケール設定に左右されずに同じ出力が得られるため、スクリプトで出力を解析するときや、エラーメッセージで検索するときに役立ちます。ただしLC_ALLや個別のLC_*(LC_MESSAGES等)が設定されているとLANGより優先されるため、確実を期すならLC_ALL=Cを使います。

選択肢ごとの解説

  • A正しい。Cロケールでは英語のメッセージと決まった書式になり、環境に依存しない出力を得られます。
  • B誤り。LANG=Cはシステムの既定言語ではなく、英語のCロケールに切り替える指定です。
  • C誤り。Cロケールの文字セットは基本的にASCIIで、UTF-8への固定ではありません。多言語表示が目的ならja_JP.UTF-8等を使います。
  • D誤り。「C」はロケール名で、C言語での再コンパイルや高速化とは関係ありません。
LinuCレベル1の問題を演習モードで解く