このページで解説している内容は、以下の 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エンコーディング) |
| C、POSIX | 英語 |
現在設定されている環境変数の確認
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
(設定なし)環境変数 LANG が ja_JP.UTF-8 に設定されている場合の例
・「date」コマンドを実行します。
LANG が ja_JP.UTF-8 に設定されているため、出力が日本語になります。
user01@ubuntu-vm:~$ date
2024年 7月 20日 土曜日 12:29:50 JST環境変数の優先順位
| 優先順位 | 環境変数 |
|---|---|
| 1 | LC_ALL |
| 2 | LC_*(カテゴリ別) |
| 3 | LANG |
環境変数 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コマンドを使用して、現在のロケール設定を確認できます。- ロケール関連の環境変数には
LANG、LC_MESSAGES、LC_ALLがあります。 - 一時的にロケールを変更するには、コマンドラインで環境変数を設定します。
- ユーザーごとにロケールを設定するには、シェル設定ファイルに環境変数を追加します。
これにより、ロケール設定を柔軟に管理し、システムの運用を最適化することができます。
