【Linux】環境変数を設定や削除する方法!一覧表示して確認まで行います

code

Linuxで環境変数を設定したいです。

そういった疑問に現役エンジニアの筆者が答えます。

また環境変数の削除や確認や定義や代入まで見ていきます。

筆者はWindowsサーバーやLinuxサーバーの運用構築を11年以上おこなってきました。その経験を元に知識を公開していきます!

この記事を読めばLinuxサーバーで、環境変数の設定や削除について理解する事ができます。

目次

Linuxサーバーで環境変数を設定する方法

環境変数設定

Linuxサーバーで環境変数を設定するやり方は以下の通りです。

STEP
シェル変数に値を定義する
シェル変数=シェル変数の値

※シェル変数と「=」の間にスペースを入れない事。入れるとコマンドとみなされエラーとなります。

STEP
シェル変数の設定を確認する
set
STEP
シェル変数を環境変数にエクスポートする(環境変数の設定)
export シェル変数
STEP
環境変数を確認する
env
printenv

シェル変数は設定されたシェルのみ使用する変数です。子プロセスには引き継がれません。

環境変数は設定されたシェルと、そのシェルで起動されたプログラムが使用する変数です。子プロセスに引継ぎされます。

シェル変数を設定してその変数をエクスポートする事で、環境変数を設定します。

Linuxサーバーで環境変数を削除する方法

環境変数削除

Linuxサーバーでシェル変数を削除するコマンドは「unset」コマンドです。

unset 環境変数

このコマンドでシェル変数が削除され、自動的に環境変数も削除する事ができます。

シェル変数は残して環境変数のみ削除するにはexportコマンドにnオプションをつけることで可能になります。

export -n 環境変数

Linuxサーバーで環境変数を参照する方法

環境変数参照

Linuxサーバーで環境変数を参照するには、環境変数の前に「$」を付けます。

$環境変数

これで環境変数を参照する事が可能です。

初期からあるよく使用する環境変数とは

元々設定してあるシェル変数があり、それをエクスポートしている環境変数があります。

変数名説明
LANG言語情報が定義
HOMEユーザーのホームディレクトリを格納
PATHコマンドの検索するパスを定義
初期環境変数

実践:Linuxサーバーで環境変数を設定や削除する方法

training

Linuxサーバーで環境変数を設定する

では実際に環境変数を設定してみます。

OS=Linux

OSというシェル変数に「Linux」という値を入れてみました。

setコマンドとgrepで確認してみます。

[root@localhost ~]# set | grep OS
HOSTNAME=localhost.localdomain
HOSTTYPE=x86_64
OS=Linux
OSTYPE=linux-gnu
PROMPT_COMMAND='printf "3]0;%s@%s:%s
[root@localhost ~]# set | grep OS
HOSTNAME=localhost.localdomain
HOSTTYPE=x86_64
OS=Linux
OSTYPE=linux-gnu
PROMPT_COMMAND='printf "\033]0;%s@%s:%s\007" "${USER}" "${HOSTNAME%%.*}" "${PWD/#$HOME/~}"'
7" "${USER}" "${HOSTNAME%%.*}" "${PWD/#$HOME/~}"'

いくつか表示されましたが、OSのシェル変数が追加されています。

環境変数にあるか確認します。

envコマンドだと全ての環境変数が表示されるので、printenvコマンドで変数を指定しましょう!

[root@localhost ~]# printenv OS
[root@localhost ~]#

何も表示されていないので、環境変数には設定されていません。

ではexportコマンドで環境変数の設定を行います。

export OS

これでOSという環境変数が設定されました。先程のprintenvコマンドで確認します。

[root@localhost ~]# printenv OS
Linux

指定した環境変数の値が表示されています。

Linuxサーバーで環境変数を1コマンドで設定する

一気に環境変数を設定する事も可能です。

export 環境変数=環境変数の値

実際に環境変数を1コマンドで設定してみます。

export NAME=mike

printenvコマンドで確認します。

[root@localhost ~]# printenv NAME
mike

1コマンドで環境変数が設定できました。

Linuxサーバーで環境変数を参照する

先程使用した環境変数を参照してみます。

[root@localhost ~]# echo $OS
Linux
[root@localhost ~]# echo $NAME
mike

環境変数の前に「$」を付ける事で参照できています。

Linuxサーバーで環境変数を削除する

先程使用したシェル変数をunsetコマンドで削除してみます。

unset NAME

削除されたか確認してみます。

[root@localhost ~]# set | grep -x NAME=mike
[root@localhost ~]#

シェル変数は削除されました。当然環境変数も削除されたはずです。確認してみます。

[root@localhost ~]# printenv NAME
[root@localhost ~]#

環境変数が削除されました。

exportコマンドにnオプションをつけて環境変数を削除してみます。

[root@localhost ~]# export -n NAME

[root@localhost ~]# set | grep -x NAME=mike
NAME=mike
[root@localhost ~]# printenv NAME
[root@localhost ~]#

シェル変数は表示されますが、環境変数は表示されません。

コマンド「export -n」では環境変数のみが削除されました。

ログイン時に環境変数を設定するには

ログイン時の環境変数設定

折角作成した環境変数はログアウトすれば消えてしまいます。

毎回使用する環境変数はログインする時に読み込む設定をすれば、効率が良いです。

設定するファイルは「~/.bash_profile」です。

現在のファイルの内容を表示してみます。

[root@localhost ~]# cat ~/.bash_profile
# .bash_profile

# Get the aliases and functions
if [ -f ~/.bashrc ]; then
        . ~/.bashrc
fi

# User specific environment and startup programs

PATH=$PATH:$HOME/bin

export PATH

このファイルにviエディタで追記していきます。

export OS=Linux

上の一文を最後の行に追記して、保存してviエディタを終了します。

先程の確認コマンドで確認してみます。

[root@localhost ~]# printenv OS
[root@localhost ~]#

ファイルに設定しても即座に反映されません。ログインし直すか、「~/.bash_profile」ファイルを実行すれば反映します。

ファイルを実行してみます。

Linuxでファイルを実行する様々な方法は、以下の記事を参照

. ~/.bash_profile

これで「~/.bash_profile」ファイルを実行しました。もう一度確認してみます。

[root@localhost ~]# printenv OS
Linux

環境変数が反映されています。もちろんログインし直しても参照可能です。

まとめ:Linuxの環境変数を設定や削除する方法

データベース

Linuxサーバーで環境変数を設定するコマンドは以下の通り。

環境変数=環境変数の値
export 環境変数

環境変数を一気に設定するコマンドは以下の通り。

export 環境変数=環境変数の値

Linuxサーバーでシェル変数と環境変数を削除するコマンドは「unset」コマンドです。

unset 環境変数

Linuxサーバーで環境変数のみ削除するコマンドは「export -n」コマンドです。

export -n 環境変数

Linuxサーバーで環境変数を参照するには、環境変数の前に「$」を付けます。

$環境変数

毎回使用する環境変数はログインする時に読み込む設定をすれば、効率が良いです。

設定するファイルは「~/.bash_profile」で環境変数を設定するコマンドを追記する。

反映させるにはログインし直すか、「~/.bash_profile」を実行する。

code

この記事が気に入ったら
フォローしてね!

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次