• ベストアンサー

環境変数の初期設定

RedHat Enterprise Linux AS 3.0 を使用しています。 export コマンドで環境変数の設定を行ってその場では有効になりますが、再起動すれば変更された内容は元通りになってしまいます。 起動時から有効な環境変数の設定はどのように変更すればよいのでしょうか? ユーザ毎の環境変数は .bash_profile を編集すれば変更可能である事が分かりましたが、デフォルトの環境変数を編集する方法を教えてください。 よろしくお願いいたします。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.2

/etc/profileにデフォルトの(システム全体の)環境変数を設定します。変更しているのではないです。

参考URL:
http://linux.ascii24.com/linux/allascii/linuxmag/2001/06/27/627083-006.html
ann_dv
質問者

お礼

/etc/profile をちらっと見た時には環境変数を変更しているスクリプトに思えたのですが、じっくり見てみると環境変数を0から作成しているスクリプトである事が分かりました。 迅速なご回答ありがとうございました。

その他の回答 (2)

  • notnot
  • ベストアンサー率47% (4900/10358)
回答No.3

>デフォルトの環境変数 そういうものは存在しないです。環境変数はプロセス毎に異なるプロセス固有の値で、プロセス生成時に親プロセスの環境変数を引き継ぎます。また他プログラムを起動するときに環境変数を指定して起動する事も出来ます。一番のご先祖のプロセスはinitですが、ここには環境変数はたぶん存在しないと思います。 必要に応じてプログラムが環境変数を設定します。例えば、login は、HOME,PATH,SHELL,LOGNAME等を設定してシェルを呼び出しますが、HOME,SHELL,LOGNAMEはパスワードファイルを読んで設定して、PATHは固定値(/usr/local/bin:/bin:/usr/bin等)を設定します。呼び出されたシェルもいろいろな環境変数を設定します。 どのような環境変数が設定されるかはプログラムで決まっています。それを「デフォルト」と言えば言えますが、「デフォルトの環境変数」というよりは、「loginというプログラムがシェル起動時に設定するPATH環境変数の値」というニュアンスですね。「どのプログラム」の話をしているのか明確にする必要があります。プログラムを特定しないで、「linuxというOSの環境変数のデフォルト」というものは最初に書いた通りありません。

回答No.1

/etc/profile に設定します。 関数やエイリアスなどは /ect/bashrc がよいです。

ann_dv
質問者

補足

早速のご回答ありがとうございました。 環境変数を編集するには、やはりこのように起動スクリプトを編集するしか方法が無いのでしょうか。 スクリプトによって変更される以前のデフォルトの環境変数を編集する方法がもしあるのでしたら教えてください。