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

1.08.3ローカライゼーションと国際化

LinuCレベル1 102試験の出題範囲から「1.08.3 ローカライゼーションと国際化」についての例題を解いてみます。
ここでは、localeコマンドについて確認しておきましょう。

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


例題

以下のから、日付や時刻に関する書式の設定を表示するコマンドとして、誤ったコマンドを1つ選択してください。

  1. locale LC_TIME
  2. locale -k LC_TIME
  3. locale -c LC_TIME
  4. locale -t LC_TIME

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


解答と解説

正解は、「4. locale -t LC_TIME」です。

localeコマンドに、-tというオプションは存在しません。

localeコマンドは、ロケール設定を表示することができるコマンドです。
書式は以下の通りです。

locale [オプション] [名前]

なお、[オプション]も[名前]も指定せず、localeのみ実行した場合、現在のロケール設定が表示されます。

$ locale
LANG=ja_JP.UTF-8
LC_CTYPE="ja_JP.UTF-8"
LC_NUMERIC="ja_JP.UTF-8"
LC_TIME="ja_JP.UTF-8"
LC_COLLATE="ja_JP.UTF-8"
LC_MONETARY="ja_JP.UTF-8"
LC_MESSAGES="ja_JP.UTF-8"
LC_PAPER="ja_JP.UTF-8"
LC_NAME="ja_JP.UTF-8"
LC_ADDRESS="ja_JP.UTF-8"
LC_TELEPHONE="ja_JP.UTF-8"
LC_MEASUREMENT="ja_JP.UTF-8"
LC_IDENTIFICATION="ja_JP.UTF-8"
LC_ALL=

初めに、[名前]について解説します。
[名前]に指定できる値は、「カテゴリ名」または「キーワード名」になります。
[名前]は複数指定することができます。

指定できるカテゴリ名は以下の通りです。

LC_CTYPE文字の種別および大文字/小文字の変換に関する設定
LC_NUMERIC1000単位の区切り文字など金額に関係しない数値で使用される表示方法に関する設定
LC_TIME日付や時刻の書式に関する設定
LC_COLLATE並び換えや正規表現で使われる照合順序に関する設定
LC_MONETARY通貨の書式に関する設定
LC_MESSAGES肯定/否定の応答の表示と通知やメニューの言語に関する設定
LC_PAPER標準的な用紙サイズに関する設定
LC_NAME名前を呼ぶ際のフォーマット(Mr.やMs.など)に関する設定
LC_ADDRESS住所に使用するフォーマットおよびロケーション情報に関する設定
LC_TELEPHONE電話番号の書式に関する設定
LC_MEASUREMENTメートルなど計算単位に関する設定
LC_IDENTIFICATIONロケール情報に関するメタデータに関する設定

指定できるキーワード名は多数ありますので、公式のマニュアルで確認しておきましょう。

[名前]を指定することで、設定値を表示することができます。カテゴリ名を指定した場合、設定値の一覧を表示します。

例として、「LC_TIME」というカテゴリ名を指定して実行すると、以下のように表示されます。

$ locale LC_TIME
日;月;火;水;木;金;土
日曜日;月曜日;火曜日;水曜日;木曜日;金曜日;土曜日
 1月; 2月; 3月; 4月; 5月; 6月; 7月; 8月; 9月;10月;11月;12月
1月;2月;3月;4月;5月;6月;7月;8月;9月;10月;11月;12月
:
:
:
(中略)
:
:
:
%Y年 %b %e日 %A %H:%M:%S %Z
UTF-8
1月;2月;3月;4月;5月;6月;7月;8月;9月;10月;11月;12月
 1月; 2月; 3月; 4月; 5月; 6月; 7月; 8月; 9月;10月;11月;12月

キーワード名を指定した場合、キーワード名に対応した設定値のみを表示します。

例として、「name_fmt」というキーワード名を指定して実行すると、以下のように表示されます。「name_fmt」は、「LC_NAME」カテゴリに属する、名前の書式に関するキーワード名です。

$ locale name_fmt
%p%t%f%t%g

次に、オプションについて解説します。
主なオプションは以下の通りです。

-a, --all-locales

設定可能なロケールをすべて表示します。
このオプションを使用する場合、[名前]の指定は不要です。

-c, --category-name

設定値を表示する際に、指定した[名前]が所属しているカテゴリ名も表示します。

複数の[名前]を指定した場合に、どのカテゴリの設定値か判別が容易になり、可読性を向上することができます。
なお、このオプションを使用する場合、[名前]の指定が必要です。

例として、[LC_TIME]というカテゴリ名と、「name_fmt」というキーワード名を指定して実行すると、以下のように表示されます。

$ locale -c LC_TIME name_fmt
LC_TIME ←カテゴリ名が表示される
日;月;火;水;木;金;土
日曜日;月曜日;火曜日;水曜日;木曜日;金曜日;土曜日
 1月; 2月; 3月; 4月; 5月; 6月; 7月; 8月; 9月;10月;11月;12月
1月;2月;3月;4月;5月;6月;7月;8月;9月;10月;11月;12月
:
:
:
(中略)
:
:
:
UTF-8
1月;2月;3月;4月;5月;6月;7月;8月;9月;10月;11月;12月
 1月; 2月; 3月; 4月; 5月; 6月; 7月; 8月; 9月;10月;11月;12月
LC_NAME ←カテゴリ名が表示される
%p%t%f%t%g

-k, --keyword-name

設定値を表示する際に、対応するキーワード名も表示します。

表示形式は、"キーワード名=設定値" です。

前述の-cオプション同様、可読性を向上することができ、-cオプションと併用することも可能です。なお、このオプションを使用する場合、[名前]の指定が必要です。

例として、[LC_TIME]というカテゴリ名を指定して実行すると、以下のように表示されます。

$ locale -k LC_TIME
abday="日;月;火;水;木;金;土"
day="日曜日;月曜日;火曜日;水曜日;木曜日;金曜日;土曜日"
abmon=" 1月; 2月; 3月; 4月; 5月; 6月; 7月; 8月; 9月;10月;11月;12月"
mon="1月;2月;3月;4月;5月;6月;7月;8月;9月;10月;11月;12月"
:
:
:
(中略)
:
:
:
time-codeset="UTF-8"
alt_mon="1月;2月;3月;4月;5月;6月;7月;8月;9月;10月;11月;12月"
ab_alt_mon=" 1月; 2月; 3月; 4月; 5月; 6月; 7月; 8月; 9月;10月;11月;12月"

なお、上記以外にもオプションは存在します。併せて確認しておきましょう。

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

1.locale LC_TIME
正しいコマンドです。

「LC_TIME」カテゴリの設定値を一覧表示します。

2.locale -k LC_TIME
正しいコマンドです。

「LC_TIME」カテゴリのキーワード名と設定値を一覧表示します。

3.locale -c LC_TIME
正しいコマンドです。

「LC_TIME」カテゴリのカテゴリ名と設定値を一覧表示します。

4.locale -t LC_TIME
存在しないオプションです。

localeコマンドを使用することで、ロケールの設定を確認することができます。カテゴリ毎の役割を理解して、ロケール設定を確認できるようにしておきましょう。


例題作成者

株式会社デージーネット OSS研究室 宮地 智哉

ページトップへ