突然ですが、プログラミング学習者の皆さんは、こんなメッセージを見たことあると思います。
zsh: command not found: $
PATHが通っていないときのエラーメッセージです。
私は、そんなPATHを通そうと、色々やらかしてしまった一人です。
PATHが通らず、勝手に悩み、勝手に解決したネタ話をしたいと思います。
$PATHとは

まず、私のPATHについての小咄をする前に、しっかりとPATHについて知識を身に付けておきましょう。
参考となる記事リンクを載せておきます。
PATHを通すとは? (Mac OS X)

PATHを通すために環境変数の設定を理解する (Mac OS X)

Pathを通すとは、環境変数とは

【完全解説】Macで「PATHを通す」をちゃんと理解する【初学者必読】
PATHの確認

話は戻りまして、PATHが通らず、エラー画面が出てしまいました。
まずは、PATHどうなってんだよ!と確認します。
# PATHの確認
xxxxxxxxx@xxxxxtaitonoAir ~ % echo $PATH
/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/opt/X11/bin
すると、ブワッと出てくるんですね。
その時の感想が、こちらです。

うわぁ、usr, binとかいっぱいあるじゃん…
キレイにしたいなー
この時は、そんなふうに思っていました。
.bash_profileの編集
整理する方法について、下記ブログを発見。
MacのPATHの削除方法を紹介!増えすぎたPATHを整理しよう


ホゥホゥ、.bash_profileの編集をすればいいのかな…?
#.bash_profileのオープン
open ~/.bash_profile
すると、こんな画面が…


なんだよ、無茶苦茶被ってるじゃん…。ダブりは削除しても、問題ないだろ。
# 編集後の.bash_profileを更新
source ~/.bash_profile
結果。。。
xxxxxxxxx@xxxxxtaitonoAir ~ % echo $PATH
HOME/.rbenv/bin:/bin:/usr/bin:/usr/local/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/opt/X11/bin

なんで増えたwww
めっちゃ長くなってるしww
PATHの見方
まず、最初にめっちゃ長いと思っていたPATHは、実はそんなに長くなかったことが判明。
もう一度最初のコードを振り返ってみましょう。
/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/opt/X11/bin
# セミコロン:で区切ってある
# 実際は…
/usr/local/bin
/usr/bin
/bin
/usr/sbin
/sbin
/opt/X11/bin
# 6つのPATHしかなかった。
このように、細切れになっているだけで、何ひとつダブっているものはありませんでした。

なんだ、最初に戻せばいいんじゃん。
.bash_profileを元に戻す
じゃあ、もう一度.bash_profile開いて、元に戻そう。
xxxxxxxxx@xxxxxtaitonoAir ~ % open .bash_profile
# .bash_profileを元に戻す
xxxxxxxxx@xxxxxtaitonoAir ~ % source ~/.bash_profile
xxxxxxxxx@xxxxxtaitonoAir ~ % echo $PATH
/Users/xxxxxxxxx/.rbenv/shims:/Users/xxxxxxxxx/.rbenv/bin:/Users/xxxxxxxxx/.rbenv/shims:/Users/xxxxxxxxx/.rbenv/bin:/Users/xxxxxxxxx/.rbenv/shims:/Users/xxxxxxxxx/.rbenv/bin:HOME/.rbenv/bin:HOME/.rbenv/bin:/bin:/usr/bin:/usr/local/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/opt/X11/bin

ちょwwwww
めっちゃ増えてるやんけwww
PATHの再設定
こうなったら、PATHを再設定じゃー!
# PATHを再設定
xxxxxxxxxxx@xxxxxtaitonoAir ~ % export PATH=$PATH:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/opt/X11/bin
# PATHの確認
xxxxxxxxxxx@xxxxxtaitonoAir ~ % echo $PATH
/Users/xxxxxxxxxxx/.rbenv/shims:/Users/xxxxxxxxxxx/.rbenv/bin:/Users/xxxxxxxxxxx/.rbenv/shims:/Users/xxxxxxxxxxx/.rbenv/bin:/Users/xxxxxxxxxxx/.rbenv/shims:/Users/xxxxxxxxxxx/.rbenv/bin:HOME/.rbenv/bin:HOME/.rbenv/bin:/bin:/usr/bin:/usr/local/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/opt/X11/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/opt/X11/bin

ちょ…
またPATH増えた…。
中身はどうなってるのか、みてやろうじゃないか。
パスのひとつ一つの中身になんの環境変数が入っているのか、確認してみました。
# ひとつひとつ ls パス でパスの中身を確認。
# 例)
$ ls /bin
[ dd launchctl pwd test
bash df link rm unlink
cat echo ln rmdir wait4path
chmod ed ls sh zsh
cp expr mkdir sleep
csh hostname mv stty
dash kill pax sync
date ksh ps tcsh
# /bin の中にはecho, mkdir, rmなどが入っているんだなー。
ひとつ、ひとつ、PATHの中身を検索した結果、下記の結果になりました。
/Users/xxxxxxxxxxx/.rbenv/shims
:/Users/xxxxxxxxxxx/.rbenv/bin ... no such file or directory
:/Users/xxxxxxxxxxx/.rbenv/shims
:/Users/xxxxxxxxxxx/.rbenv/bin
:/Users/xxxxxxxxxxx/shims
:/Users/xxxxxxxxxxx/.rbenv/bin
:HOME/.rbenv/bin
:HOME/.rbenv/bin ...no such file or directory
:/bin
:/usr/local/bin
:/usr/local/bin
:/usr/bin
:/bin
:/usr/sbin
:/sbin
:/opt/X11/bin
:/usr/local/bin
:/usr/bin
:/bin
:/usr/sbin
:/sbin
:/opt/X11/bin ...permission denied

重複しているし、削除したいなぁ。。。
やっちゃダメ!? unset PATH
いっそ全削除して、最初から入れ直した方が楽なのかなーと思いました。
# 全削除コマンド らしい…。
$unset PATH

けど、このコマンドは使用しないでください!
とってもヤバそうです!!
使用したからと言って、責任は持ちませんよ!
解決策

キーーーーーーッ!
もう何したらいいか、わからーーーーん!!
ターミナル終了
ターミナル 再起動
xxxxxxxxx@xxxxxtaitonoAir ~ % echo $PATH
/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/opt/X11/bin
xxxxxxxxx@xxxxxtaitonoAir ~ %

あれ?直ったよ…。
結論
気にすんな!ターミナル落とせば直る!
以上!!
広告

この記事がおもしろかったよ!参考になったよ!と言う方は、購入しなくてもいいので、ワンクリックだけでもよろしくお願いします!
ブログ記事を書く励みになります!

その他参考記事


