Quantcast
Channel: Bashタグが付けられた新着記事 - Qiita
Viewing all articles
Browse latest Browse all 2822

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

$
0
0

始めに

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"$cash -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に戻せます
$cash -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 settingalias 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_SETTINGSfi

export PS1="$ "# 以下にbash固有の設定を書く
.zlogin
COMMON_SETTINGS=$HOME/.common_settings

if[-e$COMMON_SETTINGS]then source$COMMON_SETTINGSfi

PROMPT="%~ %F{green}>%f%F{yellow}>%f%F{red}>%f "# 以下にzsh固有の設定を書く

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

まとめ

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


Viewing all articles
Browse latest Browse all 2822

Latest Images

Trending Articles