こんにちはフロントエンドエンジニアのまさにょんです!
今回は、Macでbashかzshかを確認する方法と切り替える方法(sh, bash, zshとは?)についてまとめて解説していきます。
目次
Macでbashかzshかを確認する方法と切り替える方法
MacのShell確認をする: echo $SHELL
echo $SHELL
で、MacのShellを確認することができます。
通常は、zsh か bash かのどちらかになります。
ちなみに、MacOS Catalina以降からデフォルトのシェルがbash
からzsh
に置き換えられました。
# MacのShellの確認
echo $SHELL
# [ 実行結果 ]
/bin/zsh
変更可能なShellの確認: cat /etc/shells
次のコマンドで、お使いのMac環境で設定が可能なシェルの一覧を確認することができます。
cat /etc/shells
# List of acceptable shells for chpass(1).
# Ftpd will not allow users to connect who are not using
# one of these shells.
/bin/bash
/bin/csh
/bin/dash
/bin/ksh
/bin/sh
/bin/tcsh
/bin/zsh
ターミナルで使用するデフォルトのShellを変更する
ターミナルで使用するデフォルトのShellを変更するには、次のようなchsh
コマンドを実行します。
ちなみにchsh
は、change shell の略です。
chsh -s /bin/zsh
上記コマンドを実行して、Shellを変更した後は、ターミナルを再起動します。
デフォルトのShellを変更しなくても、Shellと対話することはできる
先ほどのコマンドでは、デフォルトのShellを変更して、ターミナルでコマンドを動かすShellを固定で変えていますが、
一時的にShellを使用したいだけなら、そのShellをコマンドで、呼び出すという手段もあります。
zsh
がデフォルトShellのMacで、bash
コマンドを実行すると、bash
と対話モードになります。
% bash
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.
bash-3.2$
ただ、上記に記載ある英文のとおり、Default の対話Shellはzsh
になっているので、このbash
との対話モードは一時的なものです。
Default の対話Shellそのものを変更したい場合は、先述のchsh
コマンドを使用します。
ちなみに、bash
との一時的な対話モードから抜けるには、exit
コマンドで、抜けることができます。
bash-3.2$ exit
exit
【おまけ】そもそもShell(シェル)とは?
そもそもShell(シェル)とは、何でしょうか?
そのことについて、最後にまとめていきます。
次のShell(シェル)の説明が、わかりやすかったので引用します。
そもそものところでシェル(Shell)とは、殻のことです。
OSとアプリケーションの間に立ってユーザからの要求をシステムに伝えるためのユーザインターフェースで、
要はコマンドを入力することで動くプログラムのことをシェルといいます。
人間がOSのカーネル(核)を直接いじって致命的なエラーを出さないように、
貝の殻のように『OSを包み込んで守る』という役割からシェルと呼ばれているみたいです。
ちなみに、よく聞く『シェルスクリプト』とはシェルが解釈できるコマンドを並べたファイルのことを言い、
シェルとは別物なのでシェルスクリプトを省略してシェルと呼ばないように注意が必要です!
引用元: シェルってなに?bashとzsh、自分のMacはどっちを使ってるの?
つまり、人間がOSのカーネル(核)を直接いじって致命的なエラーを出さないように仲介して、動作するプログラムであり、
コマンドをOSのカーネル(核)に伝えるプログラムだと言えます。
sh, bash, zshとは?
Shell(シェル)にも、さまざまな種類がありますが、Macでよく登場するのは、sh
, bash
, zsh
などだと思います。
sh
, bash
, zsh
の関係性についてまとめると、次のとおりです。
- sh: オリジナルのUnixシェルで、一番古いShellです。
- 1970年代にSteven Bourne氏によって開発されたため、Bourne Shellとも呼ばれます。
- bash: shに拡張機能を追加した、一番有名なShellです。
- Linuxなど多くのオペレーティングシステムでデフォルトのShellとして採用されています。
- 機能が多く移植性に優れています。
- zsh: z(ゼット) Shell とも呼ばれ、bashから派生したシェルです。
- bashよりも多くの機能と拡張機能を持ち、カスタマイズ性が高く、シンタックスハイライトなどの機能が備わっています
- MacOS Catalina以降からデフォルトのシェルが
bash
からzsh
に置き換えられました。
基本的に、今現在のShellでは、bash
やzsh
などのsh
の後継シェルが広く使われています。
また、sh
とbash
は同じコマンドとして扱われる場合があるものの、
bash
の方が機能が多く移植性に優れているため、現在のLinux環境でシェルスクリプトを作成する場合はbash
やzsh
が推奨されます。
Twitterやってます!Follow Me!
神聖グンマー帝国の逆襲🔥
神聖グンマー帝国の科学は、世界一ぃぃぃぃぃぃ!!!!!