eureka

シェルってなに?bashとzsh、自分のMacはどっちを使ってるの?

7

Macが使用しているシェルってだいたいbashかzshからしいんだけど、自分がどっち使っているのか簡単に知る方法ないかな?

ある

自分のMacがなんのシェルを使用しているか確認する方法

結論からお話しましょう!!!

下記のコマンドをターミナルで打って、返答があったほうが今使用しているシェルです。

echo $ZSH_VERSION
// 数字が返ってくればzshを使用中

echo $BASH_VERSION
// 数字が返ってくればbashを使用中

2021.7.6 追記
コマンドを打たなくてもターミナルの上部で確認できるようです!

そもそもシェルってなに?

そもそものところでシェル(Shell)とは殻のことです。(まぁまぁ、最後まで聞いて。)

OSとアプリケーションの間に立ってユーザからの要求をシステムに伝えるためのユーザインターフェースで、要はコマンドを入力することで動くプログラムのことをシェルといいます。

人間がOSのカーネル(核)を直接いじって致命的なエラーを出さないように、貝の殻のように『OSを包み込んで守る』という役割からシェルと呼ばれているみたいですね。
シェル – デジタル大辞泉の解説

ちなみに、よく聞く『シェルスクリプト』とはシェルが解釈できるコマンドを並べたファイルのことを言い、シェルとは別物なのでシェルスクリプトを省略してシェルと呼ばないように注意が必要です!

シェルにも種類がいろいろ

一言にシェルといっても種類がいっぱいあるみたいです。貝にもムール貝とかホタテとかありますよね。

ログインした時点で適用されるログインシェルと、ログインしてから任意に適用する非ログインシェルがあるようです。

ログインシェル

  • sh
  • bash
  • csh
  • tcsh
  • ksh
  • zsh

など。

非ログインシェル

  • ash
  • esh
  • hush
  • osh
  • psh
  • sash

など。

もっともスタンダードなシェルはbash

一番よく使われているのはbash(ばっしゅ)というシェルで、UNIX上の昔からある一番古いshというシェルに拡張機能を追加したものです。Linuxの標準シェルにもなっていて一番スタンダードです。

万能系シェルはzsh

zsh(ぜっとしぇる)はsh、bash、csh、tcshの機能をほぼ網羅している究極・最強なシェル(らしい)です。よくわからんけどすご。

Macで使用しているシェルは?

ここからが本題になります。

Macはもともとデフォルトシェルにbashを採用していたのですが、Catalina世代からデフォルトシェルをzshに変更したようです。

bashだったひとがOSをCatalinaへアップデートしても勝手にシェルが変わることはない(と思う)のですが、Catalina以降のMacを購入したひとはデフォルトがzshになっているみたいですね。

普通に使用する分にはほとんど違いはないですが、シェルが違うと環境変数などの設定ファイルが異なってくるので、気にするところはそのへんですね。

Catalinaからzshを使用しているということは、ググって出てくる記事がCatalina以前の場合、bashを前提に解説していることが大半です。

本ブログでも他の記事でbash前提に環境構築していたりしてます。

Catalinaはまだ最近のものなので、これを知っていないと記事通りに設定してもうまく動かないぞ・・・?みたいなことが起こります。

bashの設定ファイルは”.bash_profile“、zshの設定ファイルは”.zshrc“となりますので、自分がzshを使用していて参考記事が”~/.bash_profile“で解説していたら、”~/.zshrc“と気づいて直せるようになると良いですね。

自分がどのシェルを使用しているか知りたいときは冒頭にコマンドラインがあるので、そちらを参考にしてみてください!

参考記事

本当にシェルが大好きなひとが書いたんだろうなぁと思う素晴らしき記事でした。すこ。

7