コピペでどうにか生きてきたけど自分用に知識の整理
環境変数とは「シェル環境を設定するための変数」
環境変数を表示
$ printenv [変数名]
変数を指定せずに実行すると環境変数の一覧を表示する
環境変数の設定
環境変数を設定する際にはexport
コマンドを使用
$ export [変数名]
// 変数の定義と設定を同時に指定
$ export [変数名]=[文字列]
// 上記サンプル
$ export TESTENV="test"
環境変数をクリアする
$ unset [変数名]
環境変数PATH
環境変数PATHにはコマンドの保存先を指定
コマンドのパスを通す
自作でコマンドを作成した場合に「コマンド名」だけで実行したい場合などはパスを通す必要がある。
環境変数$PATH
に対象のコマンドが入っているディレクトリを追加する
以下サンプルプロセス
※~/bin のディレクトリに自作コマンドが入っているという前提
// 環境変数PATHにディレクトリを追加
$ PATH=~/bin:$PATH
// exportを使用して環境変数に指定
$ export $PATH
注) 環境変数にディレクトリを追加する際に下記のようにすると元の内容が上書きされカオスになる
// 上書きされる...
$ PATH=~/bin
必ず「:$PATH」をつけるように!!!
補足
$PATHに複数のディレクトリが格納されている場合は、最初のディレクトリが優先される。
同じ名前のコマンドがある場合などにこれを理解していないとうまく設定されない。
// ~/binが先頭に格納され最優先になる
$ PATH=~/bin:$PATH
// ~/binが最後に格納され優先順位が下がる
$ PATH=$PATH:~/bin
設定ファイルに追記(.zshrcや.zsh_profileなど)
export
してもシェルをログアウトしてしまうと設定が消えてしまう。
毎回export
をするというの現実的ではないので「設定ファイルに追記(.zshrcや.zsh_profileなど)」する
環境設定ファイルの動作を確認する
環境変数はログインしなおすことで確認できます。
しかし、設定が失敗していた場合ログインさえできなくなるので通常は下記のコマンドを使用する
// 基本形
$ source [ファイルのパス]
// ~/.zshrc(zshの設定ファイル)を読み込ませる
$ soure ~/.zshrc