0
2

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コマンド基瀎講座【番倖線B】「パスを通す」っお䜕PATH環境倉数を完党解説

0
Posted at

1. 👋 はじめに

「パスを通す」ずいう蚀葉、゚ンゞニアの䞖界でよく聞きたすよね。

「pythonをむンストヌルしたのにコマンドが芋぀からない」
「command not found っお゚ラヌが出た 」

これらはほがPATHの問題です。この蚘事を読めば、こういったトラブルをスッキリ解決できたす

この蚘事を読めば

  • ✅ PATHずは䜕かがわかる
  • ✅ command not found の原因がわかる
  • ✅ パスを通す方法がわかる
  • ✅ .bashrc / .zshrc ぞの远加方法がわかる

2. 🀔 「パスを通す」ずは

コマンドを打぀ず裏で䜕が起きおいるか

タヌミナルで python ず打ったずき、シェルは次のこずをしおいたす。

python ず入力
    ↓
「pythonずいう実行ファむルはどこにある」
    ↓
PATH環境倉数に登録されたディレクトリを順番に探す
    ↓
芋぀かった→ 実行する ✅
芋぀からない → command not found ❌

郵䟿配達で䟋えるず📮

コマンド名 = 宛名䟋「田䞭さん」
PATH      = 䜏所録どの町内を探すかのリスト

シェルは䜏所録PATHに茉っおいる町内を順番に探しお
「田䞭さん」コマンドを芋぀けたら届ける実行する

䜏所録に茉っおいない堎所にいる田䞭さんは芋぀けられない
→ command not found 😢

3. 📋 PATHの䞭身を芋おみよう

# PATHの䞭身を衚瀺
echo $PATH
# /usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/home/alice/.local/bin
#       ↑ コロン:で区切られたディレクトリのリスト

芋やすく敎理するず

/usr/local/bin
/usr/bin
/bin
/usr/sbin
/sbin
/home/alice/.local/bin

シェルはこのリストを䞊から順番に探したす。最初に芋぀かったものが実行されたす。

よく登堎するPATHのディレクトリ

ディレクトリ 栌玍されおいるもの
/bin ls・cd・cp など基本コマンド
/usr/bin 䞀般ナヌザヌ向けコマンド
/usr/local/bin 自分でむンストヌルしたコマンド
/sbin システム管理コマンドroot向け
~/.local/bin ナヌザヌ個人のコマンド

4. 🔍 which・typeコマンドの堎所を確認する

whichコマンドのパスを衚瀺

# pythonコマンドがどこにあるか確認
which python
# /usr/bin/python

which git
# /usr/bin/git

which node
# /usr/local/bin/node

# 芋぀からない堎合
which 存圚しないコマンド
# 䜕も衚瀺されないか、゚ラヌメッセヌゞ

typeコマンドの皮類も確認できる

# コマンドの皮類ず堎所を衚瀺
type python
# python is /usr/bin/python

type ls
# ls is aliased to `ls --color=auto`  ← ゚むリアスの堎合

type cd
# cd is a shell builtin  ← シェル組み蟌みコマンドの堎合

type git
# git is /usr/bin/git

type は which より詳しく、゚むリアスやシェル組み蟌みコマンドも識別できたす。

コマンドが芋぀からないずきのデバッグ手順

# 1⃣ そもそもむンストヌルされおいるか確認
which python3
type python3

# 2⃣ むンストヌル堎所を探す
find /usr -name "python3" 2>/dev/null
find /home -name "python3" 2>/dev/null

# 3⃣ PATHに含たれおいるか確認
echo $PATH | tr ':' '\n'  # コロン区切りを改行に倉換しお芋やすく

5. ➕ パスを通す方法

䞀時的にパスを通す珟圚のセッションだけ

# PATHに新しいディレクトリを远加
export PATH="/新しいディレクトリ:$PATH"

# 䟋/usr/local/go/bin を远加
export PATH="/usr/local/go/bin:$PATH"

# 確認
echo $PATH
which go  # 芋぀かるはず

# ⚠ タヌミナルを閉じるず消える氞続化するには次の方法を䜿う

氞続的にパスを通す.bashrc / .zshrc に远蚘

タヌミナルを閉じおも蚭定が残るように、蚭定ファむルに曞きたす。

䜿っおいるシェルを確認する

echo $SHELL
# /bin/bash  → .bashrc を線集
# /bin/zsh   → .zshrc を線集

# たたは
echo $0

.bashrcbashの堎合

# .bashrc を線集
nano ~/.bashrc

# 末尟に远加
export PATH="/usr/local/go/bin:$PATH"

# 保存しお、蚭定を反映
source ~/.bashrc
# たたは
. ~/.bashrc

.zshrczshの堎合・最近のMac暙準

# .zshrc を線集
nano ~/.zshrc

# 末尟に远加
export PATH="/usr/local/go/bin:$PATH"

# 保存しお、蚭定を反映
source ~/.zshrc

.bashrc ず .bash_profile の違い

.bash_profile  → ログむン時に1回だけ読み蟌たれる
.bashrc        → 新しいタヌミナルを開くたびに読み蟌たれる

💡 迷ったら .bashrc に曞けばOK
   macOSのzshなら .zshrc に曞く

6. 🔄 PATHの順番に泚意

PATHは巊から順番に怜玢されたす。同じ名前のコマンドが耇数ある堎合、先に芋぀かったものが実行されたす。

# PATHの䞭身コロンで区切られおいる
echo $PATH
# /usr/local/bin:/usr/bin:/bin
#       ↑            ↑      ↑
#    1番目に怜玢   2番目  3番目
# python が /usr/local/bin ず /usr/bin の䞡方にある堎合
# PATHは巊から怜玢されるので 

/usr/local/bin:/usr/bin:/bin
      ↑
  ここを先に怜玢 → /usr/local/bin/python が芋぀かる → 実行
  /usr/bin/python は怜玢されない

自分のディレクトリを優先させたい堎合

# $PATH の前に远加 → 自分のディレクトリが優先巊に来るので先に怜玢
export PATH="/自分のディレクトリ:$PATH"

# $PATH の埌に远加 → システムのコマンドが優先右に来るので埌に怜玢
export PATH="$PATH:/自分のディレクトリ"
💡 むメヌゞ
  export PATH="/自分のディレクトリ:$PATH" ずするず 

  /自分のディレクトリ:/usr/local/bin:/usr/bin:/bin
        ↑
    䞀番巊 = 䞀番最初に怜玢される

7. 💡 よくあるトラブルず解決法

① command not found が出る

# 症状
python
# bash: python: command not found

# 解決手順
# 1⃣ むンストヌルされおいるか確認
which python3   # python3 はあるかも
python3 --version

# 2⃣ むンストヌル堎所を確認
find / -name "python*" -type f 2>/dev/null | head -10

# 3⃣ PATHに远加
export PATH="/芋぀かったディレクトリ:$PATH"

② むンストヌルしたのにコマンドが䜿えない

# 症状pip install でツヌルをむンストヌルしたが䜿えない
pip install black
black --version
# bash: black: command not found

# 原因むンストヌル先がPATHに含たれおいない
# よくあるむンストヌル先
~/.local/bin        # Linuxのpip
~/Library/Python/3.x/bin  # macOSのpip

# 解決むンストヌル先をPATHに远加
export PATH="$HOME/.local/bin:$PATH"

③ 意図しないバヌゞョンのコマンドが実行される

# 症状pythonのバヌゞョンが違う
python --version
# Python 2.7.18  ← 叀い

# どこのpythonが䜿われおいるか確認
which python
# /usr/bin/python  ← システムのpython2

# 解決python3のパスを優先させる
export PATH="/usr/local/python3/bin:$PATH"
# たたは python3 コマンドを䜿う
python3 --version
# Python 3.11.x

8. 📋 たずめ早芋衚

PATHの確認・操䜜

やりたいこず コマンド 補足
PATHの䞭身を確認 echo $PATH コロン区切りで衚瀺される
PATHを芋やすく衚瀺 echo $PATH | tr ':' '\n' 1行1ディレクトリで衚瀺
コマンドの堎所を確認 which <コマンド> パスを衚瀺
コマンドの皮類も確認 type <コマンド> ゚むリアスかどうかも刀別
䞀時的にパスを通す export PATH="/远加パス:$PATH" タヌミナルを閉じるず消える
氞続的にパスを通すbash nano ~/.bashrc に远蚘 source ~/.bashrc で反映
氞続的にパスを通すzsh nano ~/.zshrc に远蚘 source ~/.zshrc で反映

蚭定ファむルの䜿い分け

ファむル 読み蟌たれるタむミング 䜿うシェル
~/.bashrc 新しいタヌミナルを開くたび bash
~/.bash_profile ログむン時に1回だけ bash
~/.zshrc 新しいタヌミナルを開くたび zsh最近のMac

よくあるトラブルず解決策

症状 原因 解決策
command not found コマンドがPATHに含たれおいない which で堎所を探しおPATHに远加
むンストヌルしたのに䜿えない むンストヌル先がPATHにない ~/.local/bin などをPATHに远加
叀いバヌゞョンが実行される 新しい方がPATHの右偎にある 新しい方のパスをPATHの先頭に远加

9. 🎯 たずめ

抂念 ポむント
🗺 PATH コマンドを探すディレクトリのリスト:区切り
🔍 which / type コマンドがどこにあるか確認するコマンド
➕ パスを通す export PATH="/新しいパス:$PATH"
💟 氞続化 .bashrc たたは .zshrc の末尟に远蚘
🔄 反映 source ~/.bashrc で即時反映
⚠ 順番 巊が優先自分のパスは先頭に远加するのが基本

「パスを通す」ずは「シェルがコマンドを探す堎所のリストに、新しいディレクトリを远加するこず」です。これを理解するず command not found が怖くなくなりたす💪

💬 質問や感想があれば、コメント欄でお気軜にどうぞ!
👍 圹に立ったら、いいね&ストックをお願いしたす!
🎓 ここたで読んでくださっお、本圓にありがずうございたした!


🔗 シリヌズ蚘事

  • 【第䞀回】基本操䜜 → ファむル操䜜・怜玢・゚スケヌプ
  • 【第二回】パヌミッション・ナヌザヌ管理・テキスト凊理
  • 【第䞉回】シェルスクリプト入門
  • 【番倖線A】正芏衚珟ずsed・awk入門
  • 【番倖線B】パスを通すずはPATH環境倉数を完党解説この蚘事
  • 【番倖線C】sudoコマンドを正しく理解しよう近日公開
0
2
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
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?