macOS10.15.x系からデフォルトのシェルがbashからzshになっていた

自分のMacBookAirをmacOS10.15.3にアップデートしました。
するとターミナルの挙動がおかしい。.bash_profileの内容を読み込まない。

なぜだ・・・?と思って半日かけて検索すると、「macOS10.15.x系からデフォルトのシェルがzshになっている」という事を知る。


いきなりzshと言われましても

これまで馴染み深く使ってきたbash。zshというとデキるエンジニアが俺強いアピールをするもの、くらいの認識しかありませんでした。

bashで困ってないし、何か?

みたいな。

でもApple様がzshをデフォルトにしたのであれば、手のひらを返してでもzshに入門しなければならんですな。。。

そんな中、良い資料が見つかった

新macOS Catalina が zsh を標準にするって聞いたので Mojave のまま移行してみた | Qiita

とりあえずプロンプトをカスタマイズする

せめてbashでいうところのPS1(プロンプトの表示)とlsの結果のディレクトリの色だけでも変えたい。
編集するファイルは.zprofile,.zshenv,.zshrcの3つ。

.zprofile

# 補完機能の有効化と初期化
autoload -U compinit
compinit
# pip 自動補完
eval "$(python -m pip completion --zsh)"
# コマンド履歴の保存に関する設定
HISTFILE=~/.zhistory           # 履歴の場所。なければ勝手に作られ chmod 600 されます
SAVEHIST=500                   # ファイルに保存する件数。bashのデフォルトと同じにしてみました
HISTSIZE=$(($SAVEHIST * 2))    # メモリに蓄える件数
setopt HIST_EXPIRE_DUPS_FIRST  # 単に古いコマンドより、重複コマンドの方を優先的に忘れるオプション

ここまでは参考資料からコピペ。
新macOS Catalina が zsh を標準にするって聞いたので Mojave のまま移行してみた | Qiitaより。

ここからは個人環境設定になる

.zshenv

# for android
ANDROID_SDK=${HOME}/Library/Android/sdk/platform-tools
# for node.js
NODE=${HOME}/.nodebrew/current/bin
# for pear
PEAR=${HOME}/pear/bin
# for pyenv
PYENV_ROOT=${HOME}/.pyenv
# for flutter
FLUTTER=${HOME}/dev/flutter/bin
# user settings
export PATH=$PATH:$ANDROID_SDK:$NODE:$PYENV_ROOT:$PEAR:$FLUTTER:/usr/bin/

.zshrc

autoload -Uz colors
colors

PROMPT='%F{red}[%n@%m]%F{green}$ '
RPROMPT='[%d]'

#ls
alias ls="ls -G"

プロンプトの表示はこんな感じ
zshで書いたプロンプトの表示

とりあえずここまで。この他にもgitのブランチ表示機能なども使えるらしいがそこはおいおいやっていくこととする。

参考資料

コメント

タイトルとURLをコピーしました