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パスの設定自体はよく行うのですが、手順通りにするだけになっていました。
何が起こっているのか理解しておくことで、エラーが出たときや想定外のことが起こった場合にも対処できるようになります。
操作自体はよくしているけど、理解しきれていないようなことは、時間があるときにちゃんと調べて少しずつ理解を深めていきたいです。

ウェブサイトをダークモードに対応するときに気をつけること
Google Maps APIを使ってGoogle Mapsをウェブサイトに表示させる方法
CSSの読み込みで「its MIME type (‘text/html’) is not a supported stylesheet MIME type」エラーが表示されて読み込みができない場合の解決方法
ブログに見出しを設置できるjQueryプラグイン「TOC | jQuery Table of Contents」
WordPressって何なの?これからWordPressを勉強したい人がとりあえず知っておきたい事
さくらのレンタルサーバで.htaccessが原因で500エラーになってしまう場合のチェックリスト
ダミーとして使うURLは適当に入力せず、決まったものを使うようにしよう
スクロール時に表示領域に画面がくっつくようになる処理をCSSだけで実現する「scroll-snap」
Movable TypeでAssetURLやEntryPermalink・ContentPermalinkで出力されるパスを絶対パスから相対パスに変える
iTerm2で「Use System Window Restoration Setting」を設定しているとアラートが表示されて機能しない
Google Chromeのサイト内検索(カスタム検索)機能を別のプロファイルに移行する方法
iPadで入力モードを切り替えずに数字や記号をすばやく入力する方法
iPhoneやiPadでYouTubeの再生速度を3倍速や4倍速にする方法
Keynoteで有効にしているはずのフォントが表示されない現象
MacのKeynoteにハイライトされた状態でコードを貼り付ける方法
AirPodsで片耳を外しても再生が止まらないようにする方法
iTerm2でマウスやトラックパッドの操作を設定できる環境設定の「Pointer」タブ
DeepLで「インターネット接続に問題があります」と表示されて翻訳できないときに確認すること
Ulyssesの「第2のエディタ」表示を使って2つのシートを横並びに表示する
軽量で高速なターミナルエミュレーター「Ghostty」の設定方法
Eagleで実現するクリエイティブ素材の簡単管理
かゆいところに手が届く「Supercharge」でMac環境を便利にカスタマイズする
超軽量なコードエディタ 「Zed」をサブエディタとして活用する
Bartender 6で追加されたWidgets機能で自作メニューバーアイテムを簡単に作成する
Googleカレンダーを便利に活用するための小技集(祝日だけを表示・月末の繰り返しイベントを追加)
Obsidianを使った「自己流PKM」で行う知識トレーニング
テキストエディタ・ノートアプリ関連のショートカットキーをKeyboard Maestroで統一する
Path Finderを使ってキーボードだけでファイル操作する方法(応用編)