fish をデフォルトシェルに設定しない
以前、このようなfishのインストール手順を書いたのですが、fish をデフォルトシェルにするように手順を書いていました。
しかし、ふと ArchWiki を眺めていると、fish をデフォルトシェルに設定しない という項目が目に止まり、なるほどーという気持ちになりました。
上記の記事では、Archはデフォルトシェルを fish に設定するとスクリプトエラーが発生するので、.bashrc から fish を起動するか、ターミナルの方でfishを起動するように設定してね。
ということが書かれているのですが、これを見て、ディストリビューションによっては、ログインシェルで読み込まれていく設定ファイルがOSの動作に影響をしているケースがあるのだなー。ということを知り、デフォルトシェルは基本はディストリビューションが用意しているものに合わせていくようにする。操作するために使いたいシェルがあるのであれば、別で対話型シェルとして起動する。という風に切り分けて行った方が後々よくわからないエラーに悩まされなくて良いかもなと思ったりしました。 (例えば、[こういったエラー](https://qiita.com/tak-onda/items/a90b63d9618d6b15c18c)
というわけで、ログインシェルを bash に戻し fishを.bashrcから呼び出すようにしていきます。
まず、
chsh -s /bin/bash
で、デフォルトシェルをbashに戻し、再ログイン
あとは、やり方は該当の記事 通り 、
.bashrc
に exec fish
を追加します。
これが実行された時点で、bashプロセスがfishに切り替わります。
これで、bashを起動するとbashの /etc/profile
=> /etc/profile.d
とbashの設定ファイルの起動順で読み込んでくれるようになります。
ちなみに、bashの設定ファイルの起動順は、ディストリビューションにもよりますが、おおよそこんな感じだと思います。 https://qiita.com/tatesuke/items/88629e9550b813109964
なお、bashを起動したいときは、
bash --norc
で、起動します。(.bashrc
を読まなくなるので、exec fish が実行されなくなります。)
ひとまず、これでやってみます。
参考: