Linuxでは環境変数を確認したり設定したりすることがよくありますので、それらの方法をまとめておきます。 ※基本的にシェルはbashを使用している前提です 環境変数の確認 envコマンドで … デフォルトでは、RHEL7 システムは、ssh クライアントからロケール環境変数を受け入れるようになっています。以下のロケール環境変数を ssh クライアントが渡している場合には、ログインスクリプトが実行されるよりも前に設定されます。, 上記は、sshd_config の内容です。LANG は渡される環境変数の 1 つで、ログインプロセスの中で変更されないものです。理由については、前述の「ローカルログインのために、システムロケールと、ユーザロケールを設定する方法」 を参照してください。 目次. Red Hat Advanced Cluster Management for Kubernetes, Red Hat JBoss Enterprise Application Platform, システムワイド (または特定ユーザ) において、ローカルログインに対してロケールを変更するには, ssh クライアントから渡される LANG 変数 (ここでは LANG が利用されていますが、全てのロケール変数に適用される内容です) を sshd が設定することを防ぐために、設定する LANG そして他のロケール変数をサーバの sshd_config 内の AcceptEnv オプションから削除します。, 異なるロケール環境変数をユーザに利用させることを強制するために、/etc/profile.d/ 配下に新しいスクリプトを作成します。/etc/profile が /etc/profile.d 配下のスクリプトを探す方法の実装により、作成するスクリプトは、lang.sh よりもアルファベット順で低位に位置している必要があります。たとえば unset_lang.sh という名前にすると、lang.sh よりも後に呼ばれるようになります。, システムへログインできないというような問題に対処するため、念の為、アクティブな root セッション (コンソールを利用することが推奨されます) を開きます。このセッションによって、追加した新しいスクリプトを削除することができます。, 現在のセッションをログアウトします。ロケールはログイン時に設定されますので、いかなる変更も次回のログイン時に反映されます。, サーバを再起動する必要はありません。ログアウトし再度ログインすることで、ロケールの変更を有効にすることができます。, putty といったターミナルエミュレーターを利用してサーバに接続している時には、そのターミナルエミュレーターが ssh セッションを開いたときに渡すことのできる環境変数を定義できます。環境変数を渡すことで、ログインセッションのロケールを上書きすることができます。putty やその他のターミナルエミュレータを利用してシステムへ直接アクセスしており、環境変数がターミナルエミュレータによって提供されている場合には、環境変数の変更または削除について、ターミナルエミュレーターのドキュメントを参照してください。, 複数の設定ファイルと、システムへのアクセス方法が、ユーザーのロケールに影響を与えます。, デフォルトでは、ssh セッションは、ssh コマンドを実行したクライアントからロケール環境変数を受け取ります。これは、サーバ側の設定内容を上書きできます。. 元ゲーム会社社員が業界やIT系を中心に人生経験から得たスキルや知識を発信するブログ, Linuxでは環境変数を確認したり設定したりすることがよくありますので、それらの方法をまとめておきます。, シェルに依存しない環境変数の設定などは~/.profileに記述することが推奨となっています。, 間違って~/.bashrcや~/.bash_profileに環境変数の設定を書かないようにしましょう。, ※上記2ファイルはbashシェル用の物であり、bashシェルのエイリアスやプロンプト設定を行うために用意されており、出力などを行ってはいけないなどの制約もあります。, 普通にシェルスクリプトを起動すると子プロセスとして実行され、実行後は親プロセスに環境変数は引き継がれません。, そこで、シェルスクリプトで環境変数を反映させるにはsourceコマンドを使用します。, 現在のシェルでスクリプトが実行されますので、現在のシェルに実行したスクリプトの環境変数が反映されます。. ロケール環境変数の優先順位まとめ hostname コマンドで変更した場合再起動すると元に戻ります。 恒久的に Hostname を変更する (hostnamectl 使用) (2017/4/23 コメントでアドバイスをいただいたので追記) Copyright © 2020 linuxfan.info All Rights Reserved. If you have any questions, please contact customer service. とすればロケール「c(posix)」にロケールが変更できる。この場合の指定はその環境で一時的なものとなる。 © Copyright 2020 エンジニアの入り口. Help us understand the problem. ロケール設定の基本は環境変数「 LANG 」 3. What is going on with this article? カテゴリー別のロケール設定; 4. If you are a new customer, register now for access to product evaluations and purchasing capabilities. コマンドをフルパスで指定せずともプログラムファイルを実行できるのは「PATH」環境変数にデフォルトで。「/usr/bin」や「/usr/sbin」などが設定されているおかげである. ユーザが追加指定することも可能となっている。文字通り環境全体に影響を与える変数である。, ローカライゼーションを行い日本語の表示対応をする場合もっともユーザが着目するのが「LANG環境変数」だろう。現在の状況では、GUI環境で日本語を表示したい場合などはLANG変数に「ja_JP.UTF-8」もしくは「ja_JP.utf8」を適応することがほとんどだ。, LANG変数に「ja_JP.UTF-8」を適応し、一度ログアウトして再ログインすると大概のアプリケーションのインターフェイスは日本語表記になっているはずである。ただしGUIのターミナルではなく、実機のコンソールでは「ja_JP.UTF-8」をLANG変数に適応すると文字化けをおこすので注意しよう。, 実機コンソールで日本語部分が文字化けをおこしてしまう場合、取り敢えず英語表記にするために「LANG=C」とするとよい。なおコンソール環境をメインとする場合や、最低限の英語が表示されていればよい場合などは「LANG=C」と決め打ちしてしまってもかまわないだろう。, ローカライゼーションに関しての環境変数はLANG以外にも複数存在するが、ローカライゼーションに限って言えばLANG変数を指定するだけでほぼ問題ない。, 試しにローカライゼーション系の環境変数を表示する「locale」コマンドを実行してみよう。, Fedora24などでは「ja_JP.UTF-8」、CentOS7では「ja_JP.utf8」がほぼ全てのローカライゼーション系環境変数に適応されているのがわかる。, ここで不思議におもわれるかもしれないが、LANG変数を変更するとローカライゼーション系の環境変数はほぼ全て統一変更されるのである。, ローカライゼーション系環境変数のなかでは「LANG」「LC_ALL」は少々特殊なものとなっており、LC_ALLが設定された場合全てのローカライゼーション系環境変数は必ずその値が使用されるようになっている。LANGも同じような挙動をしているようにみえるがLC_TIMEなどを個別に設定することが可能となっている。, 一般的な設定としてはLANGを設定すれば十中八九問題ないが、デフォルトの設定をLANGで設定して、必要な部分を英語表記にするために変更するというパターンもある。, なお今おこなった設定は現在の環境内のみで有効であり、「exit」コマンドなどでログアウトすると設定はもどってしまう。, なので設定を恒久的に維持したい場合はシェル(デフォルトではbash)が起動時に読みこむファイル「.bashrc」や「.bash_profile」などに「export LANG=ja_JP.UTF-8」と記述しログイン毎に実行させるか、もしくは指定のファイルに記述することになる。, とすると使用可能なロケールが参照できる。現在恒久的に指定しているlocale情報はCentOS7の場合は「/etc/locale.conf」に保存されている。通常日本国内で使用するのであれば、現状「ja_JP.UTF-8」もしくは「ja_JP.utf8」で問題ないはずだ。, デフォルトのシェルとしてbashが設定されている場合、例えばLANG環境変数の場合単に, とすれば環境変数が設定できる。確認や参照をしたい場合「echo」コマンドを使用して確認する。, とするとLANGの値が確認できる。変数の前に「$」を必ずつけること、そうでないと単に「LANG」という文字列がかえってくるだけになる、bashで値を参照するには「$」に気をつけよう。, CentOS7では「localectl」コマンドが用意されているのでそちらを使用したほうがよいだろう。, このページではLinuxのLANG変数についてお伝えしてきた。例えば、文字コードが違う複数のサイトがひとつのサーバに設置されているときなど、しょっちゅう叩く必要がある。ぜひ使い方は覚えておこう。, という方はリナックスアカデミーの資料を見てみてください。短期間で未経験からエンジニアになることができるスクールとして15年間選ばれ続けてきた理由やノウハウが載った資料です。, エンジニアの入り口に立つために必要な勉強や技術の最新動向、本当に使えるIT資格、学習に役立つ国からの奨励金などの情報が詰まっています。, 【ITエンジニア養成スクール & IT研修専門企業のリナックスアカデミーです。】エンジニアの入り口に立つために役立つようなコンテンツを日々ご提供していきます。講師や代表やスタッフ陣が毎日楽しく書いています。ご質問・ご指摘等はぜひコメントください。, 次回のコメントで使用するためブラウザーに自分の名前、メールアドレス、サイトを保存する。.