LoginSignup
1
0

zshのPATHをイジったので、まとめる

Last updated at Posted at 2024-02-29

MacBookを買い替えました。
PATHをキレイに美しくしたいと思い、PATHをイジりました。
私は初心者なので、マシンのことを奥深くは理解できておりませんが、
私の経験と推測を元に記述します。

自分のshellを確認するコマンド

echo $SHELL

自分のPATHを確認するコマンド

echo $PATH

".zprofile"と".zshrc"はどこにあるか?

/Users/<ユーザー名>

".zshrc"を編集するには

Part1

open ~/.zshrc

で".zshrc"をテキストエディタで開きます。

Part2

なるべく".zshrc"の一番最後に、追加したいPATHを以下のように書きます。

.zshrc
export PATH=<追加したい絶対PATH>:$PATH

Part3

".zshrc"の編集が終わったら、command+Sで保存します。

Part4

source ~/.zshrc

で書き込んだPATHを反映させます。

Part5

terminalを再起動させます。

Part6

echo $PATH

でPATHを確認します。

Part7

なかなか1度で上手く行くことはまれなので、根気よくやりましょう。

".zshrc"編集の注意点

注意点1

編集する前に".zshrc"の内容をメモ帳などにコピペしましょう。

注意点2

消したいPATHをいきなり消さず、まずは

.zshrc
# export PATH=<消去したい絶対PATH>:$PATH

のようにコメントアウトして、徐々に試しましょう。

注意点3

".zprofile"はイジらない方が良いと、私は結論を出しました。
一度、".zprofile"を白紙にしたら、PATHがすごいことになりました。

使ったterminalコマンド

コマンド 意味
pwd 現在地を表示
ls 隠しフォルダとファイル以外を表示
ls -a 隠しフォルダとファイルも表示
cd <行きたいディレクトリ> <行きたいディレクトリ>に移動
cd .. 一つ上のディレクトリに移動
cd // 一番上の階層に移動

最後に

PATHの編集はなかなか難しいです。
健闘を祈る。

蛇足(推測)

例えば、

.zprofile
export PATH=/usr/local/bin:PATH
export PATH=/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:$PATH
.zshrc
export PATH=<絶対PATH1>:$PATH
export PATH=<絶対PATH2>:$PATH
export PATH=<絶対PATH3>:$PATH

と書いた場合、

echo $PATH

を実行すると、

<絶対PATH3>:<絶対PATH2>:<絶対PATH1>:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:PATH

のように表示されます。

つまり、
".zprofile"の1行目の

export PATH=/usr/local/bin:PATH

echo $PATH

の最後尾に記述されます。
".zprofile"の2行目の

export PATH=/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:$PATH

$PATH

部分が1行目の

/usr/local/bin:PATH

相当すると思われます。
だから、もし、ここまででだけで

echo $PATH

を実行できたら

/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:PATH

となるでしょう。
1行目のPATHに2行目のPATHを被せたようにみえますね。
次に、

echo $PATH

に表示されるのは".zshrc"の内容です。
まず、

export PATH=<絶対PATH1>:$PATH

です。
だから、もし、ここまででだけで

echo $PATH

を実行できたら

<絶対PATH1>:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:PATH

次に、

export PATH=<絶対PATH2>:$PATH

です。
だから、もし、ここまででだけで

echo $PATH

を実行できたら、

<絶対PATH2>:<絶対PATH1>:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:PATH

となるでしょう。
最後に

export PATH=<絶対PATH3>:$PATH

です。

echo $PATH

の結果は、最初にお伝えした通り

<絶対PATH3>:<絶対PATH2>:<絶対PATH1>:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:PATH

となります。

結論、
PCは最初に".zprofile"を上から下へ読み込み、
次に、
".zshrc"を上から下へ読み込んでいるのではないかという推測できます。

蛇足2(推測)

先ほどのzprofileにもう一度いただこう。

.zprofile
export PATH=/usr/local/bin:PATH
export PATH=/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:$PATH

もし、これを以下のように一行目をコメントアウトする。

.zprofile
# export PATH=/usr/local/bin:PATH
export PATH=/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:$PATH

これを反映したのち、

echo $PATH

を実行すると、まったく見覚えがない長いPATHが登場する。
この長いPATHはどこのファイルに記述されているかというと

/etc/paths
/etc/paths.d/10-cyrptex

に記述されているようだ。

このことより、
zprolfileの一行目の最後に記述されている"PATH"は、先ほど紹介した"paths","10-cyrptex"にあたるのではないかと推測ができる。
また、
zprofileの二行目の最後に記述されている"$PATH"は、それ以前記述されたPATHを表していると思われる。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0