Overview

このチュートリアルでは、Ubuntu、CentOS、Red Hat など、基本的にどの Linux ディストリビューションでも、1 人のユーザーやすべてのユーザーに対して環境変数を設定する方法を学びます。

環境変数は、Bash シェルでよく使われます。 また、サービスを設定したり、Webアプリケーションのシークレットを処理するための一般的な手段でもあります。

例えば、エンドポイントやパスワードなどの環境固有の情報が、サーバー上の環境変数として保存されていることも珍しくありません。

環境変数の設定

環境変数を設定するには、exportコマンドを使用します。

export NAME=VALUE

例えば、手動でインストールした OpenJDK 11 のホーム ディレクトリに環境変数を設定するには、次のようにします。

export JAVA_HOME=/opt/openjdk11

環境変数の値をシェルから出力するには、echo コマンドを使用し、変数名の前にドル ($) 記号を付けます。

echo $JAVA_HOME

そして、変数に値がある限り、それはエコー出力されます。

環境変数の設定解除

環境変数の設定を解除し、その存在を完全に排除するには、unsetコマンドを使用します。 環境変数を空の文字列に置き換えるだけでは削除されず、ほとんどの場合、有効な値を期待するスクリプトやアプリケーションで問題が発生する可能性があります。

環境変数の設定解除には、次のような構文を使用します

unset VARIABLE_NAME

例えば、JAVA_HOME環境変数の設定を解除するには、次のようなコマンドを使用します。

unset JAVA_HOME

設定されているすべての環境変数の一覧表示

すべての環境変数を一覧表示するには、引数を指定せずに set コマンドを使用します。

BASH=/bin/bashBASHOPTS=checkwinsize:cmdhist:complete_fullquote:expand_aliases:extglob:extquote:force_fignore:globasciiranges:histappend:interactive_comments:login_shell:progcomp:promptvars:sourcepath BASH_ALIASES=() BASH_ARGC=(="0") BASH_ARGV=() BASH_CMDS=() BASH_COMPLETION_VERSINFO=(="2" ="8") BASH_LINENO=() BASH_SOURCE=() BASH_VERSINFO=(="5" ="0" ="3" ="1" ="release" ="x86_64-pc-linux-gnu") BASH_VERSION='5.0.3(1)-release' COLUMNS=208 DIRSTACK=() EUID=1000 GROUPS=() HISTCONTROL=ignoreboth HISTFILE=/home/ubuntu/.bash_history HISTFILESIZE=2000 HISTSIZE=1000 HOME=/home/ubuntu HOSTNAME=ubuntu1904 HOSTTYPE=x86_64 IFS=$' \t\n' LANG=en_US.UTF-8 LESSCLOSE='/usr/bin/lesspipe %s %s' LESSOPEN='| /usr/bin/lesspipe %s' LINES=54

Persisting Environment Variables for a User

シェルから export コマンドを使用して環境変数を設定すると、ユーザーのセッションが終了した時点で環境変数の存在が終了します。

あるユーザーの環境に対して環境変数を永続化するには、そのユーザーのプロファイル スクリプトから変数をエクスポートします。

  1. 現在のユーザーのプロファイルをテキスト エディターで開きます
    vi ~/.bash_profile
  2. 永続化させたい環境変数ごとに export コマンドを追加します。
    export JAVA_HOME=/opt/openjdk11
  3. 変更を保存します。

ユーザーのbashプロファイルに環境変数を追加しただけでは、自動的にエクスポートされません。

bash_profileへのすべての変更を直ちに適用するには、sourceコマンドを使用します。

source ~/.bash_profile

環境変数のエクスポート

エクスポートはBashのビルトインシェルコマンドで、環境変数をエクスポートして新しい子プロセスに継承させるために使用されます。

export MYVAR="my variable value"

exportコマンドを引数なしで実行すると、エクスポートされた環境変数の全リストを見ることができます。

export
SHELL=/bin/zshSHLVL=1SSH_AUTH_SOCK=/private/tmp/com.apple.launchd.1pB5Pry8Id/ListenersTERM=xterm-256colorTERM_PROGRAM=vscodeTERM_PROGRAM_VERSION=1.48.2

現在のシェルでエクスポートされたすべての変数を表示するには、 export に -p フラグを使用します。

export -p

全ユーザーに永続的なグローバル環境変数を設定する

再起動後も持続する永続的な環境変数は、デフォルトのプロファイルに追加することで作成できます。 このプロファイルは、サービス アカウントを含む、システム上のすべてのユーザーによって読み込まれます。

すべてのグローバル プロファイル設定は、/etc/profile に保存されます。 また、このファイルはディレクトリを編集することができますが、実際には、グローバル環境変数を/etc/profile.dというディレクトリに保存することをお勧めします。

  1. グローバル環境変数を保存するために、/etc/profile.dの下に新しいファイルを作成します。 ファイルの名前は、他の人がその目的を理解できるように、文脈に沿ったものにします。
    sudo touch /etc/profile.d/http_proxy.sh
  2. デフォルトのプロファイルをテキストエディタで開きます。
    sudo vi /etc/profile.d/http_proxy.sh
  3. 環境変数をエクスポートするために新しい行を追加します
    export HTTP_PROXY=http://my.proxy:8080

    export HTTPS_PROXY=https://my.proxy:8080

    export NO_PROXY=localhost,::1,.example.com

  4. 変更を保存して、テキストエディターを終了します

結論

このチュートリアルでは、DebianからRed Hatまで、すべてのLinuxディストリビューションについて、環境変数を設定および解除する方法を説明しました。 Debian から Red Hat まで、すべての Linux ディストリビューションの環境変数を設定および解除する方法を説明しました。 また、すべてのユーザーだけでなく、1人のユーザーに対して環境変数を設定する方法も学びました

コメントを残す

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