前回はホスト名を変更しました。今回は言語設定を変更してみましょう。
まずは、現在の設定を確認してみましょう。
$ locale LANG=en_US.UTF-8 LC_CTYPE="en_US.UTF-8" LC_NUMERIC="en_US.UTF-8" LC_TIME="en_US.UTF-8" LC_COLLATE="en_US.UTF-8" LC_MONETARY="en_US.UTF-8" LC_MESSAGES="en_US.UTF-8" LC_PAPER="en_US.UTF-8" LC_NAME="en_US.UTF-8" LC_ADDRESS="en_US.UTF-8" LC_TELEPHONE="en_US.UTF-8" LC_MEASUREMENT="en_US.UTF-8" LC_IDENTIFICATION="en_US.UTF-8" LC_ALL= $ date Fri Jul 31 12:34:56 JST 2020
現在日時を表示しても、英語表記になります。
変更は簡単。次のファイルに設定を追加するだけ。
~/.bash_profile
各ユーザのホームディレクトリにあるファイルで、ログイン時に1回実行されます。
その中に環境変数”LANG”の設定を入れてあげるのです。
$ vi ~/.bash_profile
で、編集して、最後の行に次の一行を入れておきます。
export LANG=ja_JP.UTF-8
ログインし直してみると、
$ 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= $ date 2020年 7月 31日 金曜日 12:34:59 JST
現在日時も日本語表示されています。
終わり!
ではなく、もうちょっと。
さて、この言語指定には何が入れられるのか?
次のコマンドで一覧が表示できます。
$ localectl list-locales
C.utf8
en_AG
en_AU
en_AU.utf8
en_BW
en_BW.utf8
en_CA
en_CA.utf8
en_DK
en_DK.utf8
en_GB
en_GB.iso885915
en_GB.utf8
en_HK
en_HK.utf8
en_IE
en_IE.utf8
en_IE@euro
en_IL
en_IN
en_NG
en_NZ
en_NZ.utf8
en_PH
en_PH.utf8
en_SC.utf8
en_SG
en_SG.utf8
en_US
en_US.iso885915
en_US.utf8
en_ZA
en_ZA.utf8
en_ZM
en_ZW
en_ZW.utf8
ja_JP.eucjp
ja_JP.utf8
もし、この中にjaがない場合、インストールしなければ。
何を?
$ dnf search locale ja
:
=========================================== 概要 & 名前 一致: ja, locale ===========================================
glibc-langpack-ja.x86_64 : Locale data for ja
では、それをインストールしよう。
$ sudo dnf install glibc-langpack-ja
終了!!
ではなく、もうちょっと。
localeコマンドで表示したのはユーザー毎の設定。
では、システムでの設定は?次のファイルに設定があります。
$ cat /etc/locale.conf
LANG="en_US.UTF-8"
直接変更することも可能ですが、localectl コマンドを使用すると、システムロケールとキーボードレイアウトの設定が可能です。
まず、現在の設定状態は?
$ localectl status System Locale: LANG=en_US.UTF-8 VC Keymap: jp106 X11 Layout: jp
変更するなら、次のようなコマンドを実行。
$ sudo localectl set-locale LANG=ja_JP.UTF-8 $ sudo source /etc/locale.conf
1行目は設定ファイルの変更。
そのまま再起動すれば反映されるが、2行目のコマンドで即反映可能。
終了!!!
後少し、もう少し。
さて、システムロケールもユーザーロケールも英語なのに、SSHでログインしたら日本語で表示されるって事、あるよね?
~/.bash_profileにも記載はないし、なぜ?
それは、SSHのクライアントに設定が記載されているから。かもしれない。
MacからSSH接続しているなら、次の設定ファイルを見てみよう。
% sudo vi /etc/ssh/ssh_config
ファイルの最後に次のような記載があるか見てみよう。
Host *
SendEnv LANG LC_*
SendEnvで接続時に環境変数を設定している。
更に、Terminalの環境設定で次の設定にチェックが入っていると、実際に反映される。
終了。
言語設定は、思った以上にいろいろな要素があった。
さて、次回は、root関係のセキュリティを向上させます。