できない.dev

PATH

別名: PATH 環境変数 / $PATH / %PATH% / 実行パス

PATH は、コマンド名だけで実行ファイルを起動できるようにシェルが探索するディレクトリの一覧を保持する環境変数。
ここに無いディレクトリのコマンドは command not found になる。

公開:

定義

PATH は、シェルがコマンドを探すディレクトリの並びを持つ環境変数である。pnpmtsc のように絶対パスを書かずコマンド名だけを打ったとき、シェルは PATH に並んだディレクトリを先頭から順に見て、最初に見つかった実行ファイルを起動する。
どこにも見つからなければ command not found になる。
区切り文字は Unix 系がコロン、Windows がセミコロンである。

詳細

PATH はプロセスごとに引き継がれる値なので、変更が効く範囲は「その後に起動したプロセス」だけである。
シェルの起動ファイル(~/.zshrc~/.bashrc)に追記しても、既に開いているターミナルには反映されない。
並び順にも意味があり、同名のコマンドが複数のディレクトリにある場合は先に書いたほうが勝つ。
nvm や pyenv のようなバージョン切り替えツールは、この「先頭に自分のディレクトリを差し込む」性質を利用している。

よくある誤解

「インストールしたのに command not found が出る=インストールに失敗した」と受け取られやすいが、多くは実行ファイルは存在するのに PATH に無いだけである。which / command -v で見つからず、フルパス指定なら動くならこの状態にあたる。
また PATH に追記しただけで即座に有効になるわけではなく、シェルの再読込か新しいターミナルが要る。

関連

コマンドが見つからない具体例は Bash で PATH に追加したのに command not found が消えない を参照。
値そのものの扱いは環境変数、TypeScript の paths 設定は名前が似ているが別物で、tsconfig paths が該当する。

この記事は役立ちましたか?