連載
» 2018年11月30日 05時00分 公開

Linux基本コマンドTips(262):【 localectl 】コマンド――ロケール設定の確認と変更

本連載は、Linuxのコマンドについて、基本書式からオプション、具体的な実行例までを紹介していきます。今回は、ロケール(locale)設定を確認、変更する「localectl」コマンドです。

[@IT]
「Linux基本コマンドTips」のインデックス

Linux基本コマンドTips一覧

 本連載は、Linuxのコマンドについて、基本書式からオプション、具体的な実行例までを紹介していきます。今回は、ロケール(locale)設定を確認、変更する「localectl」コマンドです。

localectlコマンドとは?

 「localectl」はロケール(locale)設定の確認と変更を行うコマンドです。

 言語と地域の設定を「ロケール設定」(locale、ロカールとも表記)と呼びます。Linuxでは環境変数「LANG」と「LC_*」(通貨はLC_MONETARY、日時はLC_TIMEなど)を使って設定します。以前はロケールで言語だけを指定していましたが、現在は言語と地域と文字コードを組み合わせて「言語_地域.文字コード」と指定します。例えば、日本語は「ja」、日本は「JP」と表すので、「日本語」「日本」「UTF-8」という設定なら、「ja_JP.UTF-8」となります。



localectlコマンドの書式

localectl [オプション] [コマンド]

※[ ]は省略可能な引数を示しています。





localectlの主なオプション

短いオプション 長いオプション 意味
--no-convert キーボードのマッピングを変換しない(※1)
--no-pager 実行結果の表示にmoreコマンドなどのページャーを使用しない
-P --privileged 特権を取得して実行する(※2)
--no-ask-password パスワード入力を求めない
-H [ユーザー@]ホスト --host=[ユーザー@]ホスト リモートホストで実行する

※1 localectlのコマンドである「set-keymap」の実行時にX11用の設定に影響を与えたり、同じく「set-x11-keymap」の実行時にコンソールの設定に影響を与えたりしないようにする。
※2 Ubuntu 18.04 LTSの初期状態では利用できない。



localectlの主なコマンド

コマンド名 意味
status 現在のロケール設定を表示する(デフォルト)
set-locale ロケール システムのロケールを設定する(本文参照)
list-locales 使用できるロケールを表示する
set-keymap 配列 キーボード配列を設定する
list-keymaps 使用できるキーボード配列を表示する
set-x11-keymap 配列 [MODEL] [VARIANT] [OPTIONS] X11用のキーボード配列を設定する(※3)

※3 オプションで指定できる「MODEL」「VARIANT」「OPTIONS」は次のコマンドで確認できる。「list-x11-keymap-models」「list-x11-keymap-layouts」「list-x11-keymap-variants [配列]」「list-x11-keymap-options」





現在のロケール設定を確認する

 「localectl」または「localectl status」で、現在のロケール設定を表示します(画面1)。

 仮想コンソールとX11環境でのキーボードレイアウトの他、言語を表示します。

コマンド実行例

localectl

(現在のロケール設定を表示する)


画面1 画面1 現在のロケール設定を表示したところ


システムのロケール設定を変更する

 ロケールの一部を変更するには、「localectl set-locale LANG=ロケール」のように指定します。使用できるロケールは「localectl list-locales」で確認できます。

 一般ユーザーで実行する場合、パスワード入力が必要な場合もあります。変更結果は即座に反映されません。いったんログアウトしたのち、再度ログインした時点などで有効になります(※4)。

※4 /etc/locale.confが変更されるため、再ログインではなく「source /etc/locale.conf」でも反映される。



 なお、コマンドの実行結果などの表示を一時的に変更したい場合は、環境変数LANGを変更する方が手軽でしょう。

 画面2では、「localectl list-locales」で使用できるロケールを一覧表示し、「grep」コマンド(第9回)で絞り込んでいます。「-i」はアルファベットの大小文字を区別しないというオプションです。画面3では実際に一部のロケールを変更し、画面表示がどのように変わったのかを確認しています。

コマンド実行例

localectl list-locales

(使用できるロケールを一覧表示する)

localectl set-locale LANG=ロケール

(システムのロケールを変更する)


画面2 画面2 使用できるロケールを確認したところ
画面3 画面3 システムのロケールを変更したところ


キーボードの配列を変更する

 キーボードの配列は「localectl set-keymap 配列」で変更できます。使用できる配列は「localectl list-keymaps」で確認できます。

 一般ユーザーで実行する場合、パスワードを求められることがあります。端末で実行した場合、変更はすぐ反映されますが、X11環境の場合、デスクトップマネージャーの設定が優先されることがあります(※5)。

※5 CentOSの場合、設定は/etc/vconsole.confに反映される。



 画面4では、「localectl list-keymaps」で使用できるキーボード配列を一覧表示し、「grep」コマンド(第9回)で絞り込んでいます。「-i」はアルファベットの大小文字を区別しないというオプションです。

 「localectl set-keymap 配列」でキーボード配列を変更した場合、X11環境側の設定も指定に近い配列設定へと変換されます(画面5)。これを防ぐには「--no-convert」オプションを指定します(画面6)。

 画面7はCentOSの端末で実行しています。「localectl set-keymap us」実行直後からUSキー配列になっています。なお、キーボード配列を一時的に変更したい場合はloadkeyコマンドを使用することもできます。

コマンド実行例

localectl list-keymaps

(使用できるキーボード配列を確認)

localectl set-keymap 配列

(キーボード配列を変更)


画面4 画面4 使用できるキーボード配列を一覧表示したところ
画面5 画面5 キーボード配列を変更したところ X11 Layoutが「jp」から「us」に変わった。
画面6 画面6 X11環境に影響を与えないようにキーボード配列を変更したところ X11 Layoutは「jp」のまま変わらない。
画面7 画面7 端末でロケールを変更したところ


筆者紹介

西村 めぐみ(にしむら めぐみ)

PC-9801NからのDOSユーザー。PC-486DX時代にDOS版UNIX-like toolsを経てLinuxへ。1992年より生産管理のパッケージソフトウェアの開発およびサポート業務を担当。著書に『図解でわかるLinux』『らぶらぶLinuxシリーズ』『Accessではじめるデータベース超入門[改訂2版]』『macOSコマンド入門』など。2011年より、地方自治体の在宅就業支援事業にてPC基礎およびMicrosoft Office関連の教材作成およびeラーニング指導を担当。


Copyright © ITmedia, Inc. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。