愛機Mac bookのコンソールに警告が出てくるようになった。
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.
zsh を Mac のデフォルトシェルとして使う - Apple サポート
Catalina から、ついにデフォルトが zsh になったのか、ということで各種サイトを確認しながら移行することに
zsh への切り替え
冒頭の警告に書いてあるとおりのコマンドですぐに切り替わった。
$ chsh -s /bin/zsh
% zsh --version
zsh 5.7.1 (x86_64-apple-darwin19.0)
zsh の設定
zsh乗り換え後の初期設定として、簡易的なプラグイン機構やテーマ機構を有する oh-my-zsh
を設定している記事がよく引っかかるが、見えないところでシェルが重くなるのは本末転倒で避けたいので、これはスキップする。
Bash の設定を Zsh の設定に移行する
(注:雑に言うと)「.bash_profile」と「.zprofile」、「.bashrc」と「.zshrc」が対応しているので、内容をコピーします。
% cat ~/.bash_profile >> ~/.zprofile
% cat ~/.bashrc >> ~/.zshrc
- 雑すぎるので、これらのファイルは後で見直す。
zsh-completionsをインストール
zsh-completions
は、Zshの補完機能を強化する。
% brew install zsh-completions
Homebrewでインストール後に .zshrc に設定を追加することで有効になる。
# 補完機能を有効にする
autoload -Uz compinit
compinit
# sudo の後ろでコマンド名を補完する
zstyle ':completion:*:sudo:*' command-path /usr/local/sbin /usr/local/bin \
/usr/sbin /usr/bin /sbin /bin /usr/X11R6/bin
fpath=(/usr/local/share/zsh-completions $fpath)
その他 zsh 拡張をインストール
同じ要領(Homebrew)で他の拡張機能もインストール&設定した。
zsh-autosuggestions
コマンドの自動サジェスト機能
% brew install zsh-autosuggestions
source /usr/local/share/zsh-autosuggestions/zsh-autosuggestions.zsh
zsh-syntax-highlighting
コマンドのシンタックスハイライト機能
% brew install zsh-syntax-highlighting
source /usr/local/share/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh
zsh の設定ファイル???
.zprofile
とか .zshrc
とか具体的にどう用途が違うのだろうか?
zshの設定ファイルの読み込み順序と使い方Tipsまとめ - Qiita
zshenv > zprofile > zshrc > zloginの順で、
それぞれglobalを読み込んだ後で、localを上書き読み込み
ということで、私はもともと .bashrc
は .bash_profile
を呼び出す設定にしていた(雑)ので、zsh 移行後に ssh-agent
が2回立ち上がるようになって異変を感じていたが、原因はこれか。.zshrc
では .zprofile
を呼び出さないようにした。すべて .zshrc
に書けば大半は問題ない気がしてきた。
ここらへんも勉強になる。
.zshrc .zprofile のブラッシュアップ
- ここらへんを参考にしながら、自分なりの設定を見出す
できあがり
2020/01/03時点でのできあがり状況は、こんな感じです。
GitHub https://github.com/shionit/dotfiles
zsh 今後の活用
まずは履歴やコマンド補完やハイライトが便利〜という程度ですが、理解を深めて活用範囲を広げられるといいなーと(小並感
bashとzshの違い。bashからの乗り換えで気をつけるべき16の事柄
ここ↑らへんを読んで、まずは理解に努めます。
zsh 移行のメリット?
まとめようと思ったのですが、上記の通り「履歴やコマンド補完やハイライトが便利」くらいしかまだ見いだせず。
他にもこんなのがあるよ、というがあれば教えていただけると助かります!
(2020/03/09追記)頂いたコメントをもとに調べたら、このサイトで紹介されている各種機能がいい感じでした!
zshで究極のオペレーションを:連載|gihyo.jp … 技術評論社
- グローバルエイリアス
- 接尾辞エイリアス
- プロセス置換
- etc.
zsh 移行のデメリット
シェルスクリプトの制御構文を始め、互換性が保たれているので、特段デメリットに感じるものは見つけられていません。気軽に踏み込んでもいいかもですね。