ターミナルを使った作業に欠かせないシェル環境。
LinuxやmacOSでよく使われるシェルとして、Bash(Bourne Again Shell)とZsh(Z Shell)の2つが挙げられます。どちらもコマンドを実行するための環境ですが、それぞれに特徴や違いがあります。本記事では、BashとZshの違いを(macOSユーザーなのでzshを贔屓目に)解説します。
ちなみに、自分がどちらを使っているか確認するには、以下のコマンドを試してください。
echo $SHELL
/bin/bash → bashを使用中
/bin/zsh → zshを使用中
1. BashとZshの概要
Bash(Bourne Again Shell)とは?
POSIX準拠の標準的なシェルで、多くのLinuxディストリビューションのデフォルトシェル。
採用例: Ubuntu、CentOS、macOS(2019年まで)。
Zsh(Z Shell)とは?
Bashの拡張版といえるシェルで、豊富なカスタマイズ性とプラグイン対応が特徴。
採用例: macOS(Catalina以降でデフォルト)。
2. 両者の違い
-
設定ファイル
Bashは
~/.bashrc
に対し、zshは~/.zshrc
に記述します。 -
コマンド補完
Bashでcdコマンドでディレクトリを移動する際、Tabキーで部分補完が可能です。ただし、途中のディレクトリ名を省略する機能はありません。
cd /Desktop/Development/
一方、zshのcdコマンドではパスの一部を入力するだけで自動補完が可能です。
cd /D<tab>
tabを1回押下で候補の表示、2回以降の押下で自動補完がされます。
cdコマンド以外にも、gitコマンドやオプションにも適用されます。
// カレントディレクトリ内のファイルやディレクトリを補完 ls Doc<Tab> // コマンド名の補完 git ch<Tab> // コマンドのオプションを補完 ls -<Tab>
なお、自動補完機能はデフォルトではOFFなので、ONにするためには
.zshrc
で設定変更してください。vim ~/.zshrc #以下追記 autoload -Uz compinit compinit # source ~/.zshrc
zshのコマンド補完は地味に便利なので、知らなかった時間がもったいなく感じますね。