【Linux】環境変数の確認・設定・削除・永続化について

2019年7月26日

Linuxでは環境変数を確認したり設定したりすることがよくありますので、それらの方法をまとめておきます。

※基本的にシェルはbashを使用している前提です

更新履歴

  • 2021/8/22
    • コード部分にシンタックスハイライターを適用

環境変数の確認

envコマンドで設定されている環境変数の一覧を確認できます。

env
TERM=xterm
SHELL=/bin/bash
HISTSIZE=32767
SSH_CLIENT=x.x.x.x nnnnn mm
SSH_TTY=/dev/pts/0
HISTFILESIZE=32767
USER=xxxxxxxxxxxxx
・・・(以下略)・・・

exportコマンドにpオプションでも確認可能です。

export -p
declare -x CONCURRENCY_LEVEL="2"
declare -x HISTFILESIZE="32767"
declare -x HISTSIZE="32767"
declare -x HOME="/home/xxxxxxxxxxxxx"
declare -x LANG="C"
declare -x LOGNAME="xxxxxxxxxxxxx"
・・・(以下略)・・・

もちろんechoコマンドを使用すれば対象の環境変数の内容を表示できます。

echo $TERM
xterm

環境変数の設定

以下のようにexportコマンドで設定可能です。

export HOGE=2000

# 以下のようにすることも可能です
HOGE=1000 export HOGE

環境変数の削除

unsetコマンドを使えば簡単に環境変数を削除できます。

unset HOGE

exportコマンドでもnオプションを付ければ削除可能です。

export -n HOGE

環境変数の永続化

シェルに依存しない環境変数の設定などは~/.profileに記述することが推奨となっています。

注意

間違って~/.bashrc~/.bash_profileに環境変数の設定を書かないようにしましょう。

※上記2ファイルはbashシェル用の物であり、bashシェルのエイリアスやプロンプト設定を行うために用意されており、出力などを行ってはいけないなどの制約もあります。

シェルスクリプトでの環境変数の設定

普通にシェルスクリプトを起動すると子プロセスとして実行され、実行後は親プロセスに環境変数は引き継がれません。

そこで、シェルスクリプトで環境変数を反映させるにはsourceコマンドを使用します。

#set_hoge_env.shの内容
HOGE=1000
export HOGE
source ./set_hoge_env.sh

現在のシェルでスクリプトが実行されますので、現在のシェルに実行したスクリプトの環境変数が反映されます。