春ですね😊
何か新しいことを始めたくなる、そんな季節。
「どれ、最近流行りのプログラミングとやらに挑戦してみようか」
そして高い確率で出てくるのがこれ
echo 'export PATH=$PATH:`pwd`/path/to/bin' >> ~/.zshrc
このコマンドの嫌なところ
- 記事によって書き方が違う
- 自分のやりたい事によって違う
解説
改めて例のコマンドを見てみましょう。
echo 'export PATH=$PATH:`pwd`/path/to/bin' >> ~/.zshrc
このコマンドは大きく分けて2つの命令の合体です
echo A >> B
export C=D
これが合体して echo 'export C=D' >> B
の形になっています。
echo
echo A >> B
と書くとA(文字)をB(ファイル)に追加で書き込むことができます。
実際には echo A >> ~/.zshrc
となっているので
~/.zshrc
というファイルの中身の文字が増えている予想がつきます。試しに覗いてみましょう。
ふむふむ、やっぱり下に行が増えていましたね。
書き込まれたのは export
コマンドです
コマンドを使ってコマンドを書き込んだ と言うことです
この ~/.zshrc
というファイルにコマンドを書いておくと、毎回ターミナルを開いたときに自動的に実行してくれます。
つまり毎回ターミナルを開くたびに export C=D
と書くのが面倒なので ~/.zshrc
に書き込んだと言うことです
何年か前のMacを使っている人は ~/.zshrc
ではなく ~/.bash_profile
です。
export
export C=D
と書くと 環境変数 が作られます
このコマンドを日本語に翻訳すると...
$ ねぇ、パソコン君。 貯金箱 の中身を見せて
🖥 貯金箱? 何それどこにあるの? (エラー)
# PATHという 環境変数 を作っておく
$ export PATH=/自宅/私の部屋/机/引き出しの中/貯金箱
$ ねぇ、パソコン君。 貯金箱 の中身を見せて
🖥 了解!
50円玉 12枚
100円玉 36枚
500円玉 8枚
さて、実際のコマンドを改めてみると、
export PATH=$PATH:`pwd`/path/to/bin
なので、日本語の /自宅/私の部屋/机/引き出しの中/貯金箱
の部分が $PATH:`pwd`/path/to/bin
になったものですね
もう少し、あと少しだけ頑張って読んでいただければ幸いです。😭
さらに細かく考えます。$PATH:`pwd`/path/to/bin
を分すると...
`pwd`
/path/to/bin
$PATH:
`pwd`
これは私が今いるパソコンの中の場所を表します。単品のコマンドとしても使えます。
どうやら現在私はパソコンの中の /usr/local という場所にいるようです。
ここは人によって違ってきます。
-
`pwd`👍OK - /path/to/bin 👈次
- $PATH:
/path/to/bin
パソコンに教えてあげたいファイルまでの場所です。
今私がいる場所が /usr/local
なので、
`pwd`/path/to/bin
と書くのと、
/usr/local/path/to/bin
と書くのは 同じです
-
`pwd`👍OK -
/path/to/bin👍OK - $PATH: 👈次
$PATH:
$PATH
とは、あらかじめ作っておいた PATH
のことです
$ export PATH=AAA
$ export PATH=$PATH:BBB
例えばこう書くと、
$ export PATH=AAA:BBB
こう書いたのと同じ意味になります
今までパソコンに教えてあげた PATH
を消してしまわないように、古いPATH
の後ろに付け足すように命令してます
-
`pwd`👍OK -
/path/to/bin👍OK -
$PATH:👍OK
まとめ
さいごに改めてコマンド全体をみてみます
echo 'export PATH=$PATH:`pwd`/path/to/bin' >> ~/.zshrc
この一行を無理やり日本語に直すと
パソコン君、今私がいる場所を基準に考えてね! (pwd)
/path/to/bin というファイルを覚えておいてね! (/path/to/bin)
今まで教えた他の場所も忘れないでね! ($PATH)
ターミナルを開くたびに毎回これを言うの面倒だから次からは自動的にやってね! (export X >> ~/.zshrc)
というコマンドなのでした。🥳
さいごに
うーん改めてまとめるとやっぱり難しい。必要な知識が多すぎる😂
長々と説明しましたが、結局のところ初心者にとっては "おまじない" で良いのだと思います。
少しでも知識習得の助けになっていれば幸いです。
長文を読んでいただきありがとうございました。