fish をデフォルトシェルに設定しない

以前、このようなfishのインストール手順を書いたのですが、fish をデフォルトシェルにするように手順を書いていました。

takapi86.hatenablog.com

しかし、ふと ArchWiki を眺めていると、fish をデフォルトシェルに設定しない という項目が目に止まり、なるほどーという気持ちになりました。

上記の記事では、Archはデフォルトシェルを fish に設定するとスクリプトエラーが発生するので、.bashrc から fish を起動するか、ターミナルの方でfishを起動するように設定してね。

ということが書かれているのですが、これを見て、ディストリビューションによっては、ログインシェルで読み込まれていく設定ファイルがOSの動作に影響をしているケースがあるのだなー。ということを知り、デフォルトシェルは基本はディストリビューションが用意しているものに合わせていくようにする。操作するために使いたいシェルがあるのであれば、別で対話型シェルとして起動する。という風に切り分けて行った方が後々よくわからないエラーに悩まされなくて良いかもなと思ったりしました。 (例えば、[こういったエラー](https://qiita.com/tak-onda/items/a90b63d9618d6b15c18c

というわけで、ログインシェルを bash に戻し fishを.bashrcから呼び出すようにしていきます。

まず、

chsh -s /bin/bash

で、デフォルトシェルをbashに戻し、再ログイン

あとは、やり方は該当の記事 通り 、

.bashrcexec fish を追加します。 これが実行された時点で、bashプロセスがfishに切り替わります。

これで、bashを起動するとbash/etc/profile => /etc/profile.dbashの設定ファイルの起動順で読み込んでくれるようになります。

ちなみに、bashの設定ファイルの起動順は、ディストリビューションにもよりますが、おおよそこんな感じだと思います。 https://qiita.com/tatesuke/items/88629e9550b813109964

なお、bashを起動したいときは、

bash --norc

で、起動します。(.bashrc を読まなくなるので、exec fish が実行されなくなります。)

ひとまず、これでやってみます。

参考: