こんにちはフロントエンドエンジニアのまさにょんです!
今回は、Macで環境構築する際のPathの通し方や環境変数・Shellに関するコマンドについてまとめて解説していきます。
Macで環境構築する際のPathの通し方
まずは、Macで環境構築する際のPathの通し方について解説していきます。
MacのShell確認をする: echo $SHELL
echo $SHELL
で、MacのShellを確認することができます。
通常は、zsh か bash かのどちらかになります。
# MacのShellの確認
echo $SHELL
/bin/zsh
Shellの設定ファイルを作成する
Shellがzshかbashかどうかで、作成する設定ファイル名が変わってきます。
- zshの場合:.zshrc ファイル
- bashの場合:.bash_profile ファイル
今の環境に設定ファイルはあるかどうか、確認してみます。
設定ファイルは、Userのホームディレクトリにあります。
cd ~
Robotama@Gunmar~ %
ls -al
なかった場合は、touchでファイルを作成します。
touch .zshrc
bashの場合はtouch .bash_profileで作成します。
.zshrc と .bash_profile とは?
exportコマンドでは環境変数の値を永続的に保持することができません。
そのため、 .zshrc または .bash_profile という設定ファイルを使用して、環境変数PATHの値を保持させます。
この設定ファイルは、ユーザがターミナルを新規で開いた場合に読み込まれるファイルです。
このファイルに設定を加えれば、ターミナルを開いた時にその中に記述した設定を反映することができます。
設定ファイルにPATHを追加する
環境変数の追加方法には、いくつかあります。
直接、openコマンドで設定ファイルを開いて追記したり、vimで追記したり、echoコマンドを使用して追記するなどなど・・・
ここでは、いったんopenコマンドで設定ファイルを開いて追記するパターンを試してみます。
open ~/.zshrc
設定ファイルを開いたら、環境変数であるPATHに追加したいPathを記述します。
export PATH=通したいパス:$PATH
# または、、、
export PATH=$PATH:通したいパス
上記は、最初に新しいPathを追加するか、最後に新しいPathを追加するかのどちらかなので、どちらでもOKです。
echoコマンドを使用してPATHを追記する
echoコマンドを使用してPATHを追記するには、
次のように exportコマンドでPATHを追加する文字列 と「 >> 」を使用して、環境変数を追記します。
echo 'export PATH=$HOME/.nodebrew/current/bin:$PATH' >> ~/.zshrc
設定ファイルの更新
ターミナルを開き直すか、sourceコマンドで更新しないと、追加した環境変数の設定は、反映されません。
source ~/.zshrc
環境変数・Shellに関するコマンドまとめ
コマンドのPathを調べる: whichコマンド
# /bin/ls が、lsコマンドのPath
which ls
/bin/ls
# cdコマンドは、ビルドイン・コマンド
which cd
cd: shell built-in command
# brewコマンドは、Pathが通っていない・・・
which brew
brew not found
ファイルやディレクトリを検索する: locateコマンド
locateコマンドでは、あらかじめ検索しておいたファイルやディレクトリのリストのデータベースを検索することで、高速な検索を行うことができます。
オプションなど詳細な使い方については、次の記事にまとまっています。
locateコマンドについて詳しくまとめました 【Linuxコマンド集】
locate psql
# [ 実行結果 ]
/opt/homebrew/Cellar/libpq/15.2/bin/psql
/opt/homebrew/Cellar/libpq/15.2/include/postgresql/server/fe_utils/psqlscan.h
/opt/homebrew/Cellar/libpq/15.2/include/postgresql/server/fe_utils/psqlscan_int.h
/opt/homebrew/Cellar/libpq/15.2/share/doc/postgresql/html/app-psql.html
/opt/homebrew/Cellar/libpq/15.2/share/doc/postgresql/html/textsearch-psql.html
/opt/homebrew/Cellar/libpq/15.2/share/man/man1/psql.1
/opt/homebrew/Cellar/libpq/15.2/share/postgresql/psqlrc.sample
/opt/homebrew/Cellar/postgresql@12/12.14/bin/psql
/opt/homebrew/Cellar/postgresql@12/12.14/include/postgresql/server/fe_utils/psqlscan.h
/opt/homebrew/Cellar/postgresql@12/12.14/include/postgresql/server/fe_utils/psqlscan_int.h
/opt/homebrew/Cellar/postgresql@12/12.14/share/doc/postgresql@12/html/app-psql.html
/opt/homebrew/Cellar/postgresql@12/12.14/share/doc/postgresql@12/html/textsearch-psql.html
/opt/homebrew/Cellar/postgresql@12/12.14/share/man/man1/psql.1
/opt/homebrew/Cellar/postgresql@12/12.14/share/postgresql@12/psqlrc.sample
環境変数を確認する: envコマンド or printenvコマンド
envコマンド or printenvコマンドを実行すると、PATHを含め、設定されている環境変数すべてを表示できます。
env
# [ 実行結果 ]
__CFBundleIdentifier=com.apple.Terminal
TMPDIR=/var/folders/hj/lfj96yj94c37nmf21pbp3gd80000gn/T/
XPC_FLAGS=0x0
LaunchInstanceID=C2FF5849-B6DC-4248-8183-7C2F8B2CF19B
TERM=xterm-256color
SSH_AUTH_SOCK=/private/tmp/com.apple.launchd.rwyLXVMkxU/Listeners
SECURITYSESSIONID=186a4
XPC_SERVICE_NAME=0
TERM_PROGRAM=Apple_Terminal
TERM_PROGRAM_VERSION=447
TERM_SESSION_ID=48EE2046-B478-41CD-8DF4-5833EC9ACAC4
SHELL=/bin/zsh
HOME=/Users/Robotama
LOGNAME=Robotama
USER=Robotama
PATH=/usr/local/bin:/System/Cryptexes/App/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin
SHLVL=1
PWD=/Users/Robotama
OLDPWD=/Users/Robotama
LANG=ja_JP.UTF-8
_=/usr/bin/env
echoコマンドによるPATHの確認: echo $PATH
echo $PATH コマンドを実行することで、環境変数PATHの設定を確認することができます。
つまり、Pathが通っているかどうかが確認できます。
ちなみに、「 : 」はPATHの区切りになっています。
最初のセットアップ中のM1 Macでは、次のような初期設定でした。
echo $PATH
/usr/local/bin:/System/Cryptexes/App/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin
exportコマンドで、PATHを通す
exportコマンドを利用して環境変数のPATHに対して、新たなPATHを追加することができます。
$PATHには、現在設定されているPATHの情報が含まれています。
PATHを追加したい場合は:(コロン)に続けて、追加したいパスを指定します。
export PATH=$PATH:通したいPATH
次のPathは、PATH環境変数に、M1 Macのセットアップ時に最初に追加したPathになります。
export PATH="/opt/homebrew/bin:$PATH"
ただし、exportコマンドで実行した設定は一時的なもので、別のターミナルを起動するとその設定は解除されてしまいます。
そこで、先述の設定ファイルである .zshrc または .bash_profile が活躍するわけです。
ちなみに、PATHに限らず、環境変数を設定する場合の基本的な構造は、次のとおりです。
export 環境変数名=環境変数の値
Twitterやってます!Follow Me!
神聖グンマー帝国の逆襲🔥
神聖グンマー帝国の科学は、世界一ぃぃぃぃぃぃ!!!!!