LoginSignup
13
16

More than 3 years have passed since last update.

[Mac]デフォルトシェルをzshに設定するまで

Last updated at Posted at 2020-07-25

始めに

1ヶ月くらい前にようやっと、デフォルトシェルをbashからzshに変更したので、忘備録として、また、これから、zshに移行したい人のため、少しzshを導入するまでについてメモしたいと思います。

zshは「MacOS Catalina」から標準シェルとなりました。

私の場合、「使ってたアプリが使えなくなった」、「Bluetooth接続に問題あり」、といったCatalinaの不具合情報が飛び交ってたので、暫くはMojaveを使用していたのですが、リモートワークでディスプレイを増やしたい = 「Sidecar」がそのニーズを満たせるか試してみたい!ということで、アップデートしました。(まだまだ、アップデートしたくない!!という人もいるかもしれませんね。。。)

アップデート後、ターミナルを開いてみるとこんなメッセージが。。。

zshがデフォルトでない場合、毎回表示される。
The default interactive shell is now zsh.
To update your account to use zsh, please run `chsh -s /bin/zsh`.
For more details, please visit https://support.apple.com/kb/HT208050.

以下サイトの案内もメッセージに含まれてますね。日本語で書かれてるので、気になる人は一読してみるのも良いかもしれません。
https://support.apple.com/ja-jp/HT208050

毎回、メッセージ出るのも気になるし(表示させない方法もあります)、bashのバージョンも3(10年前のものでセキュリティ的にどうなの?)で古いままだし...ということで、zshに乗り換えました。

対象読者

  • MacOSをCatalinaにアップデートして、かつzshをデフォルトのシェルとして設定していない人 (これを機に乗り換えたいと思ってる人)

初めからCatalinaがデフォルトの人は、元々zshが標準のシェルになっているかと思います。

zshとは

正式名称はZ Shellでズィーシェルと読みます。
bashとは完全に互換性があるわけではない点は要注意です。(ここに関しては勉強中...)
以下、Wikiの引用になりますが、作成されたのは大分昔のようです。

zsh の最初のバージョンは、1990年 [3] に、当時 プリンストン大学の学生であった Paul Falstad によって作成された。 zsh の名前は、当時プリンストン大学のティーチングアシスタントであったイェール大学教授 Zhong Shao のログイン名 "zsh" に由来して名付けられた

Wikipediaより

zshをインストール〜デフォルトシェルに設定する

インストールはHomebrewを使用して行ます。

zshインストール~デフォルトシェルの変更まで
$ brew install zsh
$ sudo sh -c "echo '/bin/zsh' >> /etc/shells"
$ chsh -s /bin/zsh

これで、zshがデフォルトシェルに変更されました。
因みに使用できるshellのパス一覧がみたい場合は以下コマンドで確認できます。


$ cat /etc/shells
     1  # List of acceptable shells for chpass(1).
     2  # Ftpd will not allow users to connect who are not using
     3  # one of these shells.
     4
     5  /bin/bash
     6  /bin/csh
     7  /bin/dash
     8  /bin/ksh
     9  /bin/sh
    10  /bin/tcsh
    11  /bin/zsh

やっぱりbashに戻したい...という場合は

以下コマンドで、bashに戻せます
$ chsh -s /bin/bash

zshに慣れるまでは、bashとzshを併用したい場合の例

上記セクションで設定は完了しましたが、いきなりzshに移行するのが不安...という人もいるかと思います。
その場合、以下の3つにファイルを分けて、運用してみる方が安心かもしれません。

使用するファイルは以下の通り。
* .bash_profile
* .zlogin
* .common_setting(共通の設定を定義しておく)

.common_settingsというbashzsh共通で読み込む設定ファイルを作成し、(ファイル名は任意)
.common_settingsがあれば、読み込むという処理を書きます。

common_setting(共通の設定)
export PATH="$GOPATH/bin:$PATH"
export GOPATH="$HOME/go"

# alias setting
alias ls='ls -F'
alias la='ls -a'
alias ll='ls -l'
alias cp='cp -i'
bash_profile

COMMON_SETTINGS=$HOME/.common_setting
# 共通の設定ファイルが存在すれば、読み込む
if [ -e $COMMON_SETTINGS ]
then souce $COMMON_SETTINGS
fi

export PS1="$ "

# 以下にbash固有の設定を書く

.zlogin

COMMON_SETTINGS=$HOME/.common_settings

if [ -e $COMMON_SETTINGS ]
then source $COMMON_SETTINGS
fi

PROMPT="%~ %F{green}>%f%F{yellow}>%f%F{red}>%f "

# 以下にzsh固有の設定を書く

これで、bashを使いながら、徐々にzshに慣れてく事もできるかなと思います。

まとめ

ここまでで一旦、zshの導入は完了です。
シェルの起動パターンや、bashにはない書き方もあるの、ある程度理解が進んだら、まとめてアウトプットしたいと思います。

13
16
2

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
13
16