CentOS 8で環境変数を設定する。

CentOS8でプロキシを利用するために環境変数を設定してみました。
今回、環境変数としていますがプロキシサーバと読み替えてもらっても問題ないかと思います。

まあ、よくある「~/.bash_profileにexportコマンドを記載する話」なんでしょというあなた、半分正解です。

コマンドライン環境変数を設定する。

まず簡単にプロキシを設定する場合は、bash上で以下のコマンドを投入する。

export http_proxy="http://(プロキシサーバのホスト名orIPアドレス):(ポート番号)/
export https_proxy="http://(プロキシサーバのホスト名orIPアドレス):(ポート番号)/

すると環境変数にhttp_proxyとhttps_proxyが設定され、プロキシを利用するようになります。

プロファイルに環境変数を登録する。

コマンドラインで設定する場合は上記ですが、毎回設定するのは面倒なのでプロファイルに登録します。
そこで冒頭に出てきた「~/.bash_profile」が出てくるのですが、実はもう一つプロファイルを設定する方法がありました。
それが「/etc/profile.d/」の下に「(任意の名前).sh」を配置する方法になります。
「~/.bash_profile」の場合はファイルの末尾に前述の export コマンドを記載してください。
「/etc/profile.d/(任意の名前).sh」の場合はファイルの中にそのまま前述の export コマンドを記載してください。
使い分けの基準ですが、「~/.bash_profile」に設定された環境変数はユーザ個別に適用される値となります。
「/etc/profile.d/(任意の名前).sh」の場合は、全てのユーザに参照される値となります。

ここまでくると、「~/.bash_profile」と「/etc/profile.d/(任意の名前).sh」の両方に記載がある場合、どちらの値が参照されるのか気になったので実機で確認してみました。
結果だけ言うと、ユーザ切り替え直後に読み込まれている環境変数の値は「~/.bash_profile」に記載した値が読み込まれておりました。そのため、ユーザ個別の設定のほうが優先順位が高いと言えそうです。

環境変数を確認する方法

環境変数を確認する場合は export コマンドを引数なしで実行するか、env コマンドを実行して確認します。
この時、それぞれのコマンドで若干出力が異なるので注意が必要です。
尚、export コマンドを引数なしで実行する場合と -p オプションを追加して実行した場合は同じ結果となりました。

以下、exportコマンド実行例です。 環境変数の前に 「declare -x」という出力が追加されています。

[root@localhost ~]# export
(中略)
declare -x http_proxy="http://(プロキシサーバのホスト名orIPアドレス):(ポート番号)/"
declare -x https_proxy="http://(プロキシサーバのホスト名orIPアドレス):(ポート番号)/"
(以下省略)

以下、env コマンド実行例となります。設定した値が " で囲まれていません。

[root@localhost ~]# env
(中略)
https_proxy=http://(プロキシサーバのホスト名orIPアドレス):(ポート番号)/
http_proxy=http://(プロキシサーバのホスト名orIPアドレス):(ポート番号)/
(以下省略)