月額定額プランのご案内ログイン
Web開発
macOS でログインシェルを zsh から bash に切り替える方法
1 min
macOS でログインシェルを zsh から bash に切り替える方法

みなさん、こんにちは!はむさんです。

今回は、受講生の方から寄せられたご質問で、『zsh から bash に切り替える方法を教えてください。』 というご質問を頂きましたので、これに回答していきたいと思います。

ところで、皆さんは、shell は何を使われていますか?

macOS では、標準で使用する shell は macOS Catalina からは、bash から zsh に変更となりました。 そこで、この質問を頂きました。

Linux の方は標準では bash になるので、zsh から bash へ切り替える方法について分からなくて悩んでいるという方はいないんじゃないかなって思いますけれども、mac ユーザーの方で bash の操作に慣れている人にとっては、zsh ではなくて bash の方が良いから元に戻したいということだと思います。

ちなみに、ツイッターで不特定の方向けに、あなたの好きなシェルはなんですか?聞いてみたところ、 bash がなかなかの人気があるという結果が得られました。

ということで、では、早速ご紹介しています。

mac はデフォルトのシェルは zsh です。echo コマンドで SHELL という環境変数を覗くことで確認できます。

% echo $SHELL
/bin/zsh

SHELLというのは環境変数のことですね。

この環境変数は、他にもいろいろなものが設定されていて、それを保持しています。

他はどういうのがあるかっていうと、 envコマンドというのを実行することで全ての環境変数を確認することができます。

% env
TMPDIR=/var/folders/bx/s79rcl5j7q7_9b_f53pw5vfw0000gn/T/
__CFBundleIdentifier=com.apple.Terminal
XPC_FLAGS=0x0
TERM=xterm-256color
SSH_AUTH_SOCK=/private/tmp/com.apple.launchd.xsXjkV5QVJ/Listeners
XPC_SERVICE_NAME=0
TERM_PROGRAM=Apple_Terminal
TERM_PROGRAM_VERSION=440
TERM_SESSION_ID=3B0898B2-C458-4058-AB2C-49FFA75FD7E6
SHELL=/bin/zsh
HOME=/Users/ham
LOGNAME=ham
USER=ham
PATH=/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin
SHLVL=1
PWD=/Users/ham
OLDPWD=/Users/ham
LANG=ja_JP.UTF-8
_=/usr/bin/env

実は、この中にSHELLっていう変数がいるんですよね。

で、話を元に戻して、SHELLに設定されているのがloginシェルなんですね。 zsh から bash に切り替えるには、chshコマンドで次のように実行します。

% chsh -s /bin/bash
Changing shell for ham.
Password for ham:

control + d でlogoutしてあげて、command + w でターミナルを終了させます。

で、改めて、terminalをひらきます。

ログインシェルが切り替わったので、ターミナルを落として再起動します。

Last login: Thu Oct 14 23:28:19 on ttys000

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に切り替わっているかを確認しましょう。

Hamnomakku:~ ham$ echo $SHELL
/bin/bash

bash に切り替わっていることが分かります。

https://support.apple.com/kb/HT208050

しかし、なんかえらい長いメッセージが表示されているのが鬱陶しいです。こちらのメッセージにもあるように、この URL で確認してみると、こう書いてあります。

macOS Catalina が別のシェルを使う設定になっている場合に bash シェルを呼び出すと、デフォルトのインタラクティブシェルは zsh になっているというメッセージが表示されます。この警告を非表示にするには、以下のコマンドを「~/.bash_profile」または「~/.profile」に追加できます。

export BASH_SILENCE_DEPRECATION_WARNING=1

なんと、デフォルトのインタラクティブシェルはまだ zsh のようですね。

export BASH_SILENCE_DEPRECATION_WARNING=1

を設定する必要があるとのことです。

$ ls ~/.bash_profile
ls: /Users/ham/.bash_profile: No such file or directory

しかしながら、このファイル、存在しないので、ファイルを作ってあげます。これにはtouchコマンドで作成します。

$ touch ~/.bash_profile

で、このファイルを開きます。

$ open ~/.bash_profile

で、この export の文をコピペして、.bash_profile一番最後の行に追加すれば良いです。

export BASH_SILENCE_DEPRECATION_WARNING=1

では、改めて、ターミナルを開いてみましょう。

Last login: Thu Oct 14 23:29:58 on ttys000
Hamnomakku:~ ham$

はい、するとこのように、わちゃわちゃ言ってこなくなりました。

このような感じで、bash に切り替えることができました。

はい、今回は bash に切り替える方法について紹介しましたが、実は、切り替えられる shell は他にもたくさんあります。

$ less /etc/shells を実行することで、切り替えができる shell の一覧を覗くことができます。

自分は、csh がいい!とか dash がいいとか!個人的な preference があれば、そのシェルに切り替えられます。


Tags

#web-development#shell#bash

Related Posts

GitHubユーザーのためのsshの公開鍵と秘密鍵の作成方法について
GitHubユーザーのためのsshの公開鍵と秘密鍵の作成方法について
1 min

クイックリンク

月額定額プランのご案内講師紹介受講生様の声よくあるご質問メルマガ

SNS