- はじめに
- 環境変数とは
- PATH とは
- ユーザ環境変数の PATH
- Linux の環境変数関連コマンド
- 最後に
--
- わかっているようでわかっていない
- 意外とわかっていない人がいる
- ちょっと調べたので LT で話そう
--
- ざっくり調べた内容です
- 間違っている、微妙に違うとかあるかも
- ツッコミ大歓迎!
--
環境変数(かんきょうへんすう、英語: environment variable)はオペレーティングシステム (OS) が提供するデータ共有機能の一つ。OS 上で動作するタスク(プロセス)がデータを共有するための仕組みである。特にタスクに対して外部からデータを与え、タスクの挙動・設定を変更するために用いる。
https://ja.wikipedia.org/wiki/環境変数
--
- OS の変数
- OS 上で動くプロセスは利用可能
- 各種プログラム内でも使われる
--
PYTHONPATH
- Windows
%USERPROFILE%
%TEMP%
- Mac, Linux
$HOME
$LANG
--
- 環境によって値が変わる場合
- 設定ファイルの場所とか
- 秘密にしたい情報
- パスワードとか
--
- ちょっと特別な環境変数
- PATH を通してーとかいう奴
$PATH
に値を 追記 すること
- OS によって区切り文字が違う
- Windows:
;
- Mac、Linux:
:
- Windows:
--
--
/hoge/huga/piyo.sh
があった時- 実行する場合は
/hoge/huga/piyo.sh
と指定しなければいけない- どこにあるかわからないから当然
- PATH に設定すると
piyo.sh
だけで実行可能export PATH=$PATH:/hoge/huga
--
.exe
,.bat
,.cmd
などが有名- 環境変数
PATHEXT
に設定されている拡張子が省略可能
※Windows の場合
--
- システム環境変数とユーザ環境変数が重複しているとユーザ環境変数で上書きされる
- 例
- システム:
HOGE=aaa
- ユーザ:
HOGE=bbb
echo %HOGE%
とするとbbb
となる
- システム:
--
- システム環境変数の後ろにユーザ環境変数が設定される
- 例
- システム:
PATH=c:\aaa
- ユーザ:
PATH=c:\bbb
echo %PATH%
とするとc:\aaa;c:\bbb
となる
- システム:
--
- システム環境変数の PATH に対象のコマンドが存在する場合、ユーザ環境変数で上書きすることができない
- 例
- システム:
PATH=c:\aaa
- ユーザ:
PATH=c:\bbb
python.exe
がc:\aaa\python.exe
とc:\bbb\python.exe
に存在する場合、python
とコマンド実行した場合に、c:\aaa\python.exe
が呼ばれる
- システム:
--
- システム環境変数の変更には管理者権限が必要
- 管理者権限がないかつ、システム環境変数上に存在しているコマンドはユーザ側では変更することができない
--
※よく見られているっぽい
--
env
- 引数なしで環境変数表示
- 一時的に環境変数設定してコマンドを実行
printenv
- 引数なしで環境変数表示
- 特定の環境変数のみ表示
set
- 引数なしで環境変数、シェル変数表示
- シェル変数の設定
export
- 引数なし(
-p
)で環境変数表示 - 環境変数の設定
- 引数なし(
- 地味にわかっていなかった事がある
- 改めて調べてみるというのは良い
- システム保守で結構引っかかるポイント