【Linux】シェル変数と環境変数の違い

Linuxのシェル変数と環境変数の違いについてまとめました。

シェル変数と環境変数

シェル変数は、実行しているシェル上でのみ有効な変数です。
環境変数は、実行しているシェル以外のシェルでも有効な変数です。
環境変数はユーザーが任意に定義することもできますが、代表的なものはあらかじめ決められています。

変数の定義

変数は「変数=値」で定義します。変数名には、英字(大文字小文字は区別される)、数字、アンダーパー(_)を使用できます。
ただし、先頭の文字に数字は使用できません。
また、「=」の前後に空白(スペース)を入れられません
値の途中にスペースが入る場合、「”」または「’」で値の両端を囲みます。

変数に格納されている値は、変数名の前に「$」マークを付けて参照できます。
変数の値を確認するには、echo コマンド使用します。

以下は環境変数hogeに値hogehogeを入れ、echoコマンドで値を参照する例です。

$ hoge=hogehoge
$ echo $hoge 

hogehoge

ちなみに、unsetコマンドで変数を削除できます。

$ unset hoge

代表的な環境変数

環境変数 概要
USER 現在ログインしているログイン名
HOME 現在ログインしているユーザーのホームディレクトリのパス
HOSTNAME 使用中のコンピュータの名前
LANG ロケール(言語指定)
PATH コマンドサーチパス(コマンドが格納されているパス)
SHELL 実行するシェル
PWD 現在いるパス(カレント・ディレクトリ)

例えば、以下のコマンドを実行すると、登録されているPATH(コマンドが格納されているパス)を参照できます。

$ echo $PATH

/Library/Frameworks/Python.framework/Versions/3.9/bin:/usr/local/bin:/System/Cryptexes/App/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/local/bin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/bin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/appleinternal/bin:/Library/Apple/usr/bin:/Applications/Wireshark.app/Contents/MacOS:/usr/local/share/dotnet:~/.dotnet/tools:/Library/Frameworks/Mono.framework/Versions/Current/Commands:/Users/libs/flutter/bin

ユーザーのホームディレクトリにあるbinディレクトリをPATHに追加する場合、以下のコマンドを実行します。

$ PATH=$PATH:$HOME/bin

複数のパスがある場合、「:」(コロン)で区切りられています。

関連ページ

LinuCの試験対策と例題まとめ
LinuCの試験対策と例題(学習サイト)についてまとめました。
404 NOT FOUND | Linux超入門
【Linuxコマンド入門】主なコマンドとサンプル集
Linuxコマンドの主な使い方とサンプル集について入門者向けにまとめました。

コメント