Rainbow Engine

IT技術を分かりやすく簡潔にまとめることによる学習の効率化、また日常の気付きを記録に残すことを目指します。

CentOS Linux

Linuxで環境変数を永続化させる方法と手順について

投稿日:2021年3月9日 更新日:

<目次>

(1) Linuxで環境変数を永続化させる方法と手順について
 (1-1) 実現方法
 (1-2) 設定手順

(1) Linuxで環境変数を永続化させる方法と手順について

Linuxにおいて、TeraTermやPuttyでログインして操作する際、環境変数を永続的に設定するための方法についてご紹介します。

(1-1) 実現方法

ポイントとして「ログインシェル」や「非ログインシェル」にOSにログインした際に自動で環境変数をセットするように仕掛けていきます。ログインシェルというのは、OSユーザのログイン時に、起動される「シェル」です(⇒ログインシェルや非ログインシェルとは?

本記事ではシェルの中でも「bash」を例にご紹介していきます(※余談ですが、シェルにはbash以外にもDash、csh、ksh、zshなど色々と種類があります。

(1-1-1) 起動ファイルの順序について

特にbash(シェルを実装したコマンド言語)の場合は、以下の順序で起動ファイルを読み込んでいきます。
 
(a)ログインシェルの場合
ログインシェルの場合、以下の①⇒②⇒③⇒④の順番で読み込まれていきます。

①/etc/profile
②~/.bash_profile
③~/.bash_login
④~/.profile

 
それぞれのファイルの意味合いは以下の通りです。

(表)

①/etc/profile ・bashがログインシェルとして起動された際、最初に読み込まれる設定ファイルです。
・全ユーザに適用されます(グローバル設定)
・export [環境変数名]=[値]で表現します(スクリプトのため、先頭にexportの追記が必要)
・以降のファイルを②⇒③⇒④の順番で読み込んでいきます。
②~/.bash_profile ・「/etc/profile」から1番目に読み込まれるファイルです。
・特定ユーザに適用されます(「~/」配下のため)
・経緯として、シェル「ksh」の「.profile」の名前を借りて、bash用にしたもの。「ksh」から「bash」に移行する際などに使われるようです。
③~/.bash_login ・上記が存在しない場合、「/etc/profile」から2番目に読み込まれるファイルです。
・特定ユーザに適用されます(「~/」配下のため)
・経緯として、シェル「csh」の「.login」の名前を借りて、bash用にしたもの。「csh」から「bash」に移行する際などに使われるようです。
④~/.profile ・上記が存在しない場合、「/etc/profile」から3番目に読み込まれるファイルです。
・特定ユーザに適用されます(「~/」配下のため)
・②③と異なり、sh等の別のシェルからでも読み込まれます。

(補足1)
表を見ると「.bash_profile」や「.bash_login」間には機能的な差異はないですが、他のシェルからbashへ移行する際の「移行元(kshやcsh)」の名前を受け継いでいるため、別々のファイルになっているという経緯があるようです。

(補足2)
①の「/etc/profile」は代わりに「/etc/environment」への追記も可能で、その場合は「[環境変数名]=[値]」で記述します。

 

(b)非ログインシェルの場合

非ログインシェルの場合は、「~/.bashrc」の設定を読み込みます。

①~/.bashrc

(c)非対話型 非ログインシェル

非対話型の非ログインシェルの場合、「$BASH_ENV」環境変数に設定された情報を読み込みます。

$BASH_ENV

目次にもどる

(1-2) 設定手順

今回の例として、TeraTermでの日本語の文字化けを修正するために「LANG」環境変数をセットする例で説明を進めたいと思います。Beforeはこんな感じです↓。

(図121)

①設定ファイルを開く
これから行う変更を「全ユーザーに適用」する場合は「①/etc/profile」を、「特定ユーザーに適用」する場合は「④~/.profile」を開きます(※図122では「.bash_profile」を開いてしまっていますが、読み替えてください・・)

設定ファイルは「viエディタ」等で開きます。

(図122)

②設定ファイルに追記
設定ファイルに各自設定したい環境変数をセットします。以下は「LANG」の例なので各自の変数に置き換えてください。

(例)
export LANG=ja_JP.utf8

(図123)

③ログアウト&再ログイン
設定を反映させるために、一度ログアウトして再度ログインします。

$ exit

(図124)ログアウト

(図125)再ログイン

④環境変数のチェック

再びechoで環境変数の値を確認します。今度は狙った値にセットされているはずです。
(図126)

問題だった文字化けの事象の解消も確認できました。
(図127)

目次にもどる

Adsense審査用広告コード


Adsense審査用広告コード


-CentOS, Linux

執筆者:


  1. […] 参考:Linuxで環境変数を永続化させる方法と手順について|Rainbow Engineログインシェルとは?非ログインシェルとの違いも併せてご紹介|Rainbow Engine環境変数の設定(~/.bash_profile, ~/.bashrc)|わくわくBank […]

  2. […] Linuxで環境変数を永続化させる方法と手順について […]

comment

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

関連記事

Linuxのテキスト入力で日本語が文字化けした時の対処法と解説

Linuxのテキスト入力等で日本語が文字化けした時の対処方法を紹介します。 (0)目次&概説 (1) 障害・不具合の概要 (2) 文字化けの対処法 (3) 解説(文字コードについて) (1) 障害・不 …

Linuxでinodeが枯渇した時の対処方法について

  <目次> (1) Linuxでinodeが枯渇した時の対処方法について  (1-1) エラーメッセージ  (1-2) 原因  (1-3) 対策 (1) Linuxでinodeが枯渇した時 …

GNOMEのランチャー設定手順をEclipseを例にご紹介

<目次> (1) GNOMEのランチャー設定手順をEclipseを例にご紹介  (1-1) EclipseのGNOME用ランチャー作成手順  (1-2) 備考:上記対応で追加されない場合 GNOMEの …

Linuxで一般ユーザ(rootスイッチ権限有り)を作成する方法

Linuxでユーザを作成する方法を書きます。 (0)目次 >(1)作業の背景・目的・前提条件 >(2)ユーザの作成 >(3)ユーザの「Wheel」グループへの追加 (1)作業の背景・目的・前提条件 「 …

CloudLinuxとは?CentOSとの違いも交えてご紹介

<目次> (1) CloudLinuxとは?CentOSとの違いも交えてご紹介  (1-1) CloudLinuxとは?  (1-2) CloudLinuxのメリット・デメリット  (1-3) Clo …

  • English (United States)
  • 日本語
Top