0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Linuxコマンド入門:Linux・macOS・WindowsでのPATHの確認方法と「command not found」の対処法をまとめてみた

Posted at

はじめに

この辺りの仕組みがまったく理解できずに苦しい思いをしたが、わかると楽しくなってきたので書きました。

PATH(パス)は、Unix系OS(LinuxやmacOS)やWindowsにおいて、コマンドを実行する際に参照される環境変数の一つです。

PATHに設定されているディレクトリの中にあるプログラムやスクリプトは、フルパスを指定しなくても直接実行できます。

1. PATHの仕組み

PATH変数には、実行可能なファイルが格納されているディレクトリのリストがコロン(:)(Windowsではセミコロン(;))で区切られて登録されています。

コマンドを実行すると、シェルはPATHに登録されたディレクトリを順番に検索し、最初に見つかった実行ファイルを実行します。

例(Linux/macOS)

$ echo $PATH
/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin

Macbookの実際のターミナル画面

/usr/local/opt/bind/sbin:/Applications/Visual Studio Code.app/Contents/Resources/app/bin:/Users/hondaakiratarou/.nvm/versions/node/vxx.x.x/bin:/Library/Frameworks/Python.framework/Versions/x.xx/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:/private/var/folders/wm/xx_xxxxxxx/xxxxxxxxxxxxxxxxxxxxxx/T/AppTranslocation/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/d/iTerm.app/Contents/Resources/utilities:/usr/local/go/bin

この場合、コマンドが実行される際には以下のディレクトリ順に検索されます。

  1. /usr/local/bin
  2. /usr/bin
  3. /bin
  4. /usr/sbin
  5. /sbin

2. PATHの確認方法

Linux/macOS

$ echo $PATH

Windows(PowerShell)

PS C:\> echo $env:PATH

3. PATHの変更方法

一時的な変更(カレントシェルのみ適用)

PATH変数にディレクトリを追加することで、新しいコマンドをフルパスなしで実行できるようになります。

Linux/macOS

$ export PATH=/home/user/mybin:$PATH

Windows(PowerShell)

PS C:\> $env:PATH = "C:\\mybin;" + $env:PATH

この変更は現在のターミナルセッションでのみ有効です。

永続的な変更(再起動後も適用)

システムの設定ファイルに記述することで、ログイン時に自動適用されます。

Linux/macOS

ホームディレクトリの~/.bashrc~/.zshrcに以下を追加:

export PATH=/home/user/mybin:$PATH

変更を適用するには:

$ source ~/.bashrc  # または ~/.zshrc

Windows

環境変数を恒久的に変更するには、システム環境変数を編集します。

  1. 「システムのプロパティ」を開く
  2. 「詳細設定」タブの「環境変数」を選択
  3. 「システム環境変数」または「ユーザー環境変数」のPathを編集

4. PATHのトラブルシューティング

1. コマンドが見つからない(command not found エラー)

  • コマンドがインストールされていない
  • PATHにコマンドのディレクトリが登録されていない

2. コマンドのバージョンが意図しないものになる

  • PATHに複数の同名コマンドが存在し、異なるバージョンが先に見つかる
  • which コマンドで確認可能
$ which python
/usr/bin/python

3. PATHの順番を調整する

最優先にしたいディレクトリを前に追加すると、優先度を変更できます。

$ export PATH=/opt/custom/bin:$PATH

まとめ

  • PATHはコマンドを検索するディレクトリのリスト
  • echo $PATH で確認できる
  • export PATH=/new/path:$PATH で一時的に変更可能
  • .bashrc などに追加すると永続化できる
  • which コマンド名 で優先される実行ファイルを確認できる

PATHを理解し適切に設定することで、開発環境を快適にカスタマイズできますので、確認してみてくださ!

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?