web-dev-qa-db-ja.com

Unityセッションの端末で/ etc / passwdからのデフォルトのシェルが起動しないのはなぜですか?

私は魚をデフォルトのシェルとして設定しようとしています。 apt-getを介してシステムにインストールされ、/etc/shellsにリストされます。

> which fish
/usr/bin/fish
> grep fish /etc/shells
/usr/bin/fish

chshを使用して、Bashからfishに切り替えました。

> chsh -s /usr/bin/fish

そして、私のデフォルトのシェルは/etc/passwdで変更されました:

> grep "myusername" /etc/passwd
myusername:x:1000:1000:Oh Spite,,,:/home/myusername:/usr/bin/fish

驚くばかり。その後、ログアウトして再起動しました。ログインシェル(仮想TTYやSSHなど)がfishを起動するようになりました。

それでも、gnome-terminalまたはurxvtでターミナルを起動すると、bashセッションが開始されます。また、Shell変数は/bin/bashに設定されたままです。

興味深いことに、ターミネーターはデフォルトのシェルとして魚を使用します。ただし、そのセッションでもShell/bin/bashに設定されます。 Terminatorからurxvtを起動すると、urxvtはBashセッションを開始します。

デフォルトのシェルを魚に変更するには、他に何をする必要がありますか?

この質問 も参照してください。ただし、これは重複していません。なぜなら、これらの指示andをリブートしたからです。 )

5
ohspite

fishgnome-terminalのデフォルトのシェルとして設定するには、gnome-terminalから:

Edit > Profile Preferences

Title and Commandタブに移動すると、以下が得られます:

before

次のように変更します。

after

これで、gnome-terminalの新しいインスタンスを開始するたびに、fishの代わりにbashが開始されます。

1
heemayl