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

Linuxコマンドの基本:シェル変数:ロケール

シェル変数:ロケール

 Linuxシステムでは、表示言語や日付の形式など、地域と言語に関連する設定をロケール(Locale)と呼びます。ロケールを適切に設定することで、システムのメッセージやアプリケーションの表示を自分の言語や地域に合わせることができます。

 ここでは、シェル変数を利用してロケールを設定・変更する方法について解説します。特に、シェル変数であるLANGを使用して、システムメッセージの言語を切り替える方法について解説します。

シェル変数:LANG

 Linuxをインストールする際に日本語環境を選択した場合、bashのエラーメッセージやシステムメッセージは基本的に日本語で表示されます。

エラーメッセージが日本語で表示される例

 これは、システムがインストール時に設定されたロケールを基準に、表示言語や日付の形式を決定しているためです。

user01@ubuntu:~$ command1
コマンド 'command1' が見つかりません。もしかして:
  command 'commando' from snap commando (1.7.0)
他のバージョンについては 'snap info <snapname>' を確認してください。

現在のロケールの確認

 現在使用しているロケールは、シェル変数であるLANGに設定されています。LANGの値を確認するには、以下のコマンドを実行します。

user01@ubuntu:~$ echo $LANG
ja_JP.UTF-8

 上記の例では、ja_JP.UTF-8が設定されており、これは「日本語(Japan)のUTF-8エンコーディング」を意味します。

使用可能なロケールの確認

 システムがサポートしているロケールは、localeコマンドに-aオプションを付けて確認できます。

user01@ubuntu:~$ locale -a
C
C.UTF-8
POSIX
ja_JP.utf8

この出力は、システムにインストールされているロケールの一覧です。

ロケールの変更

LANG変数を変更することで、システムメッセージの言語を切り替えることができます。

英語のローケールに切り替える

たとえば、Linux環境でデフォルトのロケール設定の1つであるCローケールに切り替えます。

user01@ubuntu:~$ LANG=C
user01@ubuntu:~$ command1
Command 'command1' not found, did you mean:
  command 'commando' from snap commando (1.7.0)
See 'snap info <snapname>' for additional versions.

エラーメッセージが英語で表示されるようになりました。

日本語のローケールに戻す

元の日本語のロケールに戻すには、LANG変数を再度設定します。

user01@ubuntu:~$ LANG=ja_JP.UTF-8
user01@ubuntu:~$ command1
コマンド 'command1' が見つかりません。もしかして:
  command 'commando' from snap commando (1.7.0)
他のバージョンについては 'snap info <snapname>' を確認してください。

エラーメッセージが再び日本語で表示されるようになりました。

ロケールの設定一覧

主なロケールの設定例を以下に示します。

ローケール名説明
ja_JP.UTF-8日本語(UTF-8エンコーディング)
en_US.UTF-8英語(アメリカ、UTF-8エンコーディング)
CデフォルトのPOSIX環境(英語)
ローケルの設定一覧

ロケールの設定方法

 一時的にロケールを変更する場合は、コマンドラインでLANG変数を設定します。ただし、この方法では現在のシェルセッションでのみ有効です。永続的に変更したい場合は、~/.bashrc/etc/default/localeファイルに設定を追加します。

まとめ

  • ロケール(Locale)は、システムの表示言語や日付形式などを決定する重要な設定です。
  • LANGシェル変数を変更することで、エラーメッセージやシステムメッセージの言語を切り替えることができます。
  • locale -aコマンドで、システムにインストールされているロケールを確認できます。
  • ロケールを適切に設定することで、システムを自分の言語や地域に合わせて快適に使用できます。