環境変数とは
Linuxの環境変数は、システムやアプリケーションが必要とする設定や情報を保持するために使用されます。環境変数は、シェルのセッションやスクリプト内で参照・設定することができ、特定の設定や動作をカスタマイズするために重要です。
環境変数とシェル変数について
環境変数とシェル変数はそれぞれ役割とスコープ(適用範囲)に違いがあります。
役割
・環境変数は、システム全体の設定や、他のプログラムやシェルスクリプトで広く使われる情報を保持するために使用されます。
・シェル変数は、スクリプトや一時的な作業でのデータ保持、あるいは特定のシェル内でのみ必要な情報を格納するために使用されます。
スコープ
・環境変数は、親シェルから生成された全ての子プロセス(サブシェルやアプリケーションなど)に引き継がれる変数です。環境変数はシステム全体やアプリケーションの設定としてよく使用され、シェル内のあらゆるプロセスがアクセスできます。
・シェル変数は、現在のシェルセッション内でのみ有効な変数で、子プロセスには引き継がれません。シェルスクリプトやシェルの内部でのみ使用される一時的な変数です。
環境変数とシェル変数の設定方法
シェル変数
シェル変数は以下の様に設定します。
変数名=値
linux=test
※linuxという変数にtestという文字が設定される
また、設定した変数を削除するにはunsetコマンドを使用します。
unset linux
環境変数
環境変数は以下の様に設定します。シェル変数にexportコマンドを実行することで環境変数となり、子プロセスからでも参照できるようになります。exportで変数名を指定するときは先頭の$記号は不要なので注意しましょう。
linux=test
export linux
または
export linux=test
環境変数の確認方法
echoコマンド
echoコマンドを使用することでシェル変数や環境変数を参照することができます。echoコマンドでは変数の先頭に$が必要なので注意しましょう。
echo $linux
test
envコマンド printenv コマンド
定義されている環境変数の一覧を表示したい場合はenvまたはprintenvコマンドを使用します。
env
または
printenv
set コマンド
環境変数とシェル変数両方の一覧を表示したい場合はsetコマンドを使用します。
set
環境変数をファイルで設定する方法
環境変数をファイルに記述して設定する方法もあります。ファイルに記述することで毎回設定する必要がなくなります。
~/.bash_profileに環境変数、~/.bashrcにシェル変数を記述します。
コマンドのpathを通す
環境変数 PATH は、LinuxやUnix系のシステムにおいて非常に重要な役割を果たしています。PATH は、シェルがコマンドを実行する際に、コマンドの実行ファイルがどこにあるかを検索するディレクトリのリストを保持している環境変数です。
PATH=$PATH:/new/directory/path
または
export PATH=$PATH:/new/directory/path
永続的に PATH にディレクトリを追加するには、~/.bashrc や ~/.bash_profile に追加の設定を書き込む必要があります。
注意点として複数の同名コマンドが異なるディレクトリにある場合、最初に見つかったものが実行されます。
環境変数PATHの指定方法として以下の様にしてしまうとパスが通っているコマンドが指定したものだけになってしまい使えなくなります。上記で解説している書式で追加することで環境変数PATHの末尾に追加することができます。
PATH=/opt/bin