このページで解説している内容は、以下の YouTube 動画の解説で見ることができます。

【Linux】ロケール設定:localeコマンド

 ロケールは、特定の地域や文化に対応する設定情報を意味します。以下に、ロケールの各要素とlocaleコマンドの使用方法について解説します。

ロケールとは

ロケールは地域情報を含む設定で、以下のような要素があります。

要素説明
言語システムメッセージやユーザーインターフェースの言語
地域地域ごとの設定
文字コードテキストのエンコーディング(例:UTF-8)
通貨通貨の表示形式
日付の表示形式日付と時間のフォーマット
ロケール

 ロケールは、システム全体のユーザーエクスペリエンスを地域や言語に合わせて調整するために重要です。

locale コマンドの概要

locale コマンドは、システムのロケール設定を表示するためのコマンドです。

【構文】
locale

locale コマンドの実行例

・「locale」コマンドを実行します。

user01@ubuntu-vm:~$ locale
LANG=ja_JP.UTF-8
LANGUAGE=
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=
変数名説明
LANG全体のデフォルトロケール
LC_CTYPE文字分類と文字変換
LC_NUMERIC数字の表示形式
LC_TIME時間と日付の表示形式
LC_COLLATE文字列の比較とソート順
LC_MONETARY通貨の表示形式
LC_MESSAGESシステムメッセージの言語
LC_PAPER用紙サイズ
LC_NAME名前のフォーマット
LC_ADDRESS住所のフォーマット
LC_TELEPHONE電話番号のフォーマット
LC_MEASUREMENT測定単位
LC_IDENTIFICATION識別情報
LC_ALLすべてのカテゴリの上書き設定
変数名の説明

ロケール関連の主な環境変数

環境変数説明
LANGシステム全体のデフォルトロケール
LC_MESSAGESシステムメッセージの言語
LC_ALLすべてのロケール設定を上書き
ロケール関連の主な環境変数

主なロケール名

ロケール名説明
en_US.UTF-8アメリカ英語(UTF-8エンコーディング)
ja_JP.UTF-8日本語(UTF-8エンコーディング)
ja_JP.SHIFT_JIS日本語(Shift-JISエンコーディング)
CPOSIX英語
主なロケール名

現在設定されている環境変数の確認

echoコマンドを使って現在設定されている環境変数を確認します。

以下のコマンドを実行します。

  • echo $LANG」コマンド
  • echo $LC_MESSAGES」コマンド
  • echo $LC_ALL」コマンド
user01@ubuntu-vm:~$ echo $LANG
ja_JP.UTF-8
user01@ubuntu-vm:~$ echo $LC_MESSAGES
(設定なし)
user01@ubuntu-vm:~$ echo $LC_ALL
(設定なし)

環境変数 LANGja_JP.UTF-8 に設定されている場合の例

・「date」コマンドを実行します。

LANGja_JP.UTF-8 に設定されているため、出力が日本語になります。

user01@ubuntu-vm:~$ date
2024年  7月 20日 土曜日 12:29:50 JST

環境変数の優先順位

優先順位環境変数
1LC_ALL
2LC_*(カテゴリ別)
3LANG
環境変数の優先順位

環境変数 LC_ALL=C に変更すると

以下のコマンドを実行します。

  • export LC_ALL=C」コマンド
  • date」コマンド

ロケールがCに設定され、すべてのメッセージが英語になります。

user01@ubuntu-vm:~$ export LC_ALL=C
user01@ubuntu-vm:~$ date
Sat Jul 20 15:07:37 JST 2024

環境変数 LC_ALL を元の値(設定なし)に戻す

・「unset LC_ALL」コマンドを実行します。

環境変数 LC_ALL を元の値(設定なし)に戻します。

user01@ubuntu-vm:~$ unset LC_ALL

一時的に英語に切り替えたい場合

 LANG 環境変数にロケールを設定することで、ログイン中はその値が使われますが、一時的にだけ英語に切り替えたい場合は、以下のようにコマンドを入力します。

・「 LANG=C date」コマンドを実行します。

 LANG 環境変数を一時的に C(英語)に設定して date コマンドを実行し、日時を英語で表示します。

user01@ubuntu-vm:~$ LANG=C date
Sat Jul 20 15:19:05 JST 2024

ユーザーごとに個別にロケールを設定したい場合

 ユーザーごとに個別のロケールを設定するには、ユーザーのシェル設定ファイル(例:~/.bashrc または ~/.profile)にロケール設定を追加します。

# ~/.bashrc
export LANG=ja_JP.UTF-8
export LC_MESSAGES=en_US.UTF-8

まとめ

  • ロケール は、地域特有の設定情報を表し、システムメッセージや表示形式に影響を与えます。
  • locale コマンドを使用して、現在のロケール設定を確認できます。
  • ロケール関連の環境変数には LANGLC_MESSAGESLC_ALL があります。
  • 一時的にロケールを変更するには、コマンドラインで環境変数を設定します。
  • ユーザーごとにロケールを設定するには、シェル設定ファイルに環境変数を追加します。

これにより、ロケール設定を柔軟に管理し、システムの運用を最適化することができます。