0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

技術記事未経験で個人完走を目指すAdvent Calendar 2024

Day 21

bashとzshの違い

Last updated at Posted at 2024-12-25

ターミナルを使った作業に欠かせないシェル環境。
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. 両者の違い

  1. 設定ファイル

    Bashは~/.bashrcに対し、zshは~/.zshrcに記述します。

  2. コマンド補完

    Bashでcdコマンドでディレクトリを移動する際、Tabキーで部分補完が可能です。ただし、途中のディレクトリ名を省略する機能はありません。

    cd /Desktop/Development/
    

    Screenshot 2024-12-26 at 12.20.45.png

    一方、zshのcdコマンドではパスの一部を入力するだけで自動補完が可能です。

    cd /D<tab>
    

    tabを1回押下で候補の表示、2回以降の押下で自動補完がされます。
    Screenshot 2024-12-26 at 12.23.49.png

    cdコマンド以外にも、gitコマンドやオプションにも適用されます。

    // カレントディレクトリ内のファイルやディレクトリを補完
    ls Doc<Tab>
    
    // コマンド名の補完
    git ch<Tab>
    
    // コマンドのオプションを補完
    ls -<Tab>
    

    なお、自動補完機能はデフォルトではOFFなので、ONにするためには.zshrcで設定変更してください。

    vim ~/.zshrc
    
    #以下追記
    autoload -Uz compinit
    compinit
    #
    
    source ~/.zshrc
    

zshのコマンド補完は地味に便利なので、知らなかった時間がもったいなく感じますね。

0
1
4

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
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?