問題
.zshrcファイルを修正していたら、ls、viなどのシステムの標準コマンドが一部使えなくなってしまった
例
> zsh: command not found: ls
環境
Mac book Air M2チップ
シェルはzsh
原因
export PATH=...
の最後に/:$PATH
を書き忘れるとlsなどのコマンドが使えなくなるらしい
例
NG:export PATH="/opt/homebrew/opt/openssl/bin:$PATH"
OK:export PATH="/opt/homebrew/opt/openssl/bin"
PATH 環境変数を「追記」ではなく「上書き」してしまい、標準コマンドへのパス設定を消されてしまっていた
結果
-
/usr/bin/vi ~/.zshrc
でzshrcファイルを開く- (
/bin/cat ~/.zshrc
で確認もできる)
- (
- ":$PATH"の設定を修正
- 最後に標準のシステムパスを追記
export PATH="/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:$PATH"
- .zshrc の再読み込み
source ~/.zshrc
最終的な.zshrcファイル差分
前
export PATH="△△△/△△△△/△△△△"
.
.
.
後
export PATH="△△△/△△△△/△△△△:$PATH"
.
.
.
# 標準のシステムパス
export PATH="/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:$PATH"
追記
# 現在のログインシェルを確認
$ echo $SHELL
PATH を消すとどうなるか(環境はzshとします)
# bash/zsh でパスを消す
$ unset PATH
# 消えたことが確認できます
$ echo $PATH
>
# lsコマンドなどは使えません
$ ls
> zsh: command not found: ls
# 標準のシステムパスを$PATHに再設定
$ export PATH="/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin"
# 標準のシステムパスが.zshrcに書いてあれば.zshrcの適用でもOK
$ source ~/.zshrc