MacでCLIツールをインストールするときに行うターミナルでの「パスを通す」とは一体なにか?

ターミナルでなにかインストールするときに「パスを通す」作業を行います。
なんとなく理解しているつもりでしたが、人に説明できないなと思ったので、まとめて整理しておきます。
パスを通すとは何か?
「パスを通す」というのは、「特定のプログラムをプログラム名だけで実行できるようにする」ことです。
最初自分は勘違いをしていて、実行ファイルのパスを記述することだと思っていたのですが、あくまでそれは過程で、最終的なゴールは「特定のプログラムをプログラム名だけで実行できるようにする」ことです。
例えば当ブログで過去にパスを通す作業をしたツールに「anyenv」があります。
ターミナルでanyenvコマンドを使って○○env系のインストールやバージョン管理ができるものです。
しかし、インストールしただけではanyenvコマンドは使えません。
インストール先である「/opt/homebrew/bin/brew」ファイルを指定して「ここにあるファイルの、このプログラムを実行してください」と指定する必要があります。
あくまでイメージですが、実際には下記のようなコマンドになります。
/opt/homebrew/bin/brew shellenv anyenv init ○○ただこれを毎回入力するのは面倒です。
そこで、anyenvとコマンドを打ったら、指定したファイルを見てプログラムを実行するようにあらかじめ設定しておきます。
このことを「パスを通す」と言っています。
逆にパスを通していないと、anyenvコマンドを打っても「そんなコマンドは知らない」と言われてエラーになってしまいます。
パスの通し方
シェルの確認
パスを通すために必要な設定ファイルは、使っているシェルによって変わります。
使っているシェルは下記コマンドを実行すると確認できます。
echo $SHELL設定ファイルはbashでもzshでも2種類ありますが、「profile」とついている方はログイン時に1回だけ実行されて、「rc」と付いている方はログイン後にシェルを切り替えたときなどにも実行されるようです。
| シェル | 設定ファイル(ログイン時) | 設定ファイル(起動時時) | 備考 |
|---|---|---|---|
| bash | .bash_profile | .bashrc | |
| zsh | .zprofile | .zshrc |
bashの場合は「.bash_profile」に書いて、zshの場合は「.zshrc」に書くように書いている記事を見かけますが、どちらに書いてもそこまで大差なさそうです。
設定ファイルが2種類あって、微妙な違いがあることだけ覚えておきましょう。
パスの設定
設定ファイルに下記の記述をして、パスを指定します。
export PATH=$PATH:追加したいフォルダのパス記述したあとは設定をターミナルに反映する必要があります。
ターミナルを再起動するか、もしくは下記コマンド(.zshrcの部分は設定ファイルごとに変更してください)を実行すると設定ファイルの内容がターミナルに反映されます。
source .zshrcパスの設定自体はよく行うのですが、手順通りにするだけになっていました。
何が起こっているのか理解しておくことで、エラーが出たときや想定外のことが起こった場合にも対処できるようになります。
操作自体はよくしているけど、理解しきれていないようなことは、時間があるときにちゃんと調べて少しずつ理解を深めていきたいです。

W3 Total Cacheをレスポンシブデザインのテーマで使用する時の注意ポイント!!【WordPress】
Visual Studio Codeの設定を複数の端末間で同期する「Settings Sync」機能の使い方
無料版を使っている人は検討する価値あり!MAMP PRO 5で簡単にローカル開発環境を構築・管理する
gulp 4.0から新しく加わったseriesとparallelについての備忘録
npm-scriptsでSCSSをコンパイルする環境を構築する方法
Gitで1行しか変更していないはずのに全行変更した判定になってしまう
WordPressで「現在メンテナンス中のため、しばらくの間ご利用いただけません。」の状態でログインできなくなった場合の対処法
Visual Studio CodeでToDoコメントを一覧で表示する拡張機能「Todo Tree」
.gitignoreに含めた方がいいファイル・フォルダが一覧でまとまっている「gitignore.io」
Sassのマップ機能を使った変数の管理方法
AirPodsで片耳を外しても再生が止まらないようにする方法
MacのKeynoteにハイライトされた状態でコードを貼り付ける方法
iTerm2でマウスやトラックパッドの操作を設定できる環境設定の「Pointer」タブ
DeepLで「インターネット接続に問題があります」と表示されて翻訳できないときに確認すること
Ulyssesの「第2のエディタ」表示を使って2つのシートを横並びに表示する
Path Finderで左サイドバーとは別に、「Favorites」だけを表示させる右サイドバーを表示する
Alfred 4のAppearance Optionsから外観の設定を行う
Visual Studio CodeでCSVの編集を見やすく行う拡張機能「Edit csv」
Figmaでデザインデータ上の画像を圧縮してファイルサイズを軽くする「Downsize」
1PasswordとAlfredを連携してログイン情報の検索を行う方法
Google Chromeのタブを検索するAlfred Workflowの「Search Safari and Chrome Tabs」で、タブ移動をラクにする
SourceTreeの外部Diff / MergeツールをKaleidoscopeに設定する
2019年時点で使っている便利なAlfredのWorkflowまとめ
JavaScriptで配列内から特定条件の要素を探す方法
Sketchでデザインを作成するときの基本的な操作方法