先日、Macでデフォルトシェルを変更する設定を久方振りにやったところ、やり方を忘れてしまっていて困ってしまったので、ネットを調べた所、新旧判断の付かない情報で溢れていて困ってしまったので、備忘録として残しておくことにしました。
この備忘録では、Bashを例にしていますが、Zshでも方法は同じです。筆者は過去のMacから引き継いだスクリプトファイルの互換性維持やLinux環境との共通化のためにBashを利用しています。
現状のバージョンを確認
MacデフォルトのBashのバージョンは2023/3現在以下の通りです。
$ /bin/bash --version
GNU bash, version 3.2.57(1)-release (arm64-apple-darwin21)
Copyright (C) 2007 Free Software Foundation, Inc.
最新版をインストール
Bash version 4.x以前のバージョンでは最新のbash-completion@2を利用出来ません。よって、Homebrewでインストールします。
brew install bash
バージョンの確認
以下の通り、version 5.2.15がインストールされました。
$ /opt/homebrew/bin/bash --version
GNU bash, バージョン 5.2.15(1)-release (aarch64-apple-darwin21.6.0)
Copyright (C) 2022 Free Software Foundation, Inc.
ライセンス GPLv3+: GNU GPL バージョン 3 またはそれ以降 <http://gnu.org/licenses/gpl.html>
This is free software; you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
デフォルトシェルの変更
デフォルトシェルを変更します。その前に、/etc/shells
にインストールした最新版のBashのPathを追加します。Pathがこのファイル内に登録されていないシェルはデフォルトシェルとして設定出来ません1。
sudo echo "/opt/homebrew/bin/bash" >> /etc/shell"
Pathの追加後、以下のコマンドを実行します。
sudo chsh -s /opt/homebrew/bin/bash
変更出来たか確認します。chsh
実行時に指定したシェルのパスが返ってくれば設定成功です。
$ echo $SHELL
/opt/homebrew/bin/bash
Bash Completionの最新版をインストール
Bash Completionにはbash-completionとbash-completion@2が有ります。既にbash-completionを利用している場合は、アンインストールします。
brew uninstall bash-completion
以下を実行し、最新版をインストールします。
brew install bash-completion@2
インストールに成功していると、以下の様に確認出来ました。
$ brew list | grep bash-completion
bash-completion@2
Reference
-
chshを実行時に環境変数SHELLに登録されません。つまり変更出来ません。 ↩