J'essaie de définir le poisson comme ma coquille par défaut. Il est installé sur le système via apt-get et est listé dans /etc/shells
:
> which fish
/usr/bin/fish
> grep fish /etc/shells
/usr/bin/fish
J'ai utilisé chsh
pour passer de Bash à poisson:
> chsh -s /usr/bin/fish
Et mon shell par défaut a été modifié dans /etc/passwd
:
> grep "myusername" /etc/passwd
myusername:x:1000:1000:Oh Spite,,,:/home/myusername:/usr/bin/fish
Impressionnant. Puis je me suis déconnecté et redémarré. Les shells de connexion (par exemple, les ATS virtuels et SSH) commencent maintenant à pêcher.
Et pourtant, lorsque je démarre un terminal avec gnome-terminal ou urxvt, une session bash est lancée. De plus, la variable Shell
est toujours définie sur /bin/bash
.
Fait intéressant, Terminator utilise du poisson comme shell par défaut. Mais même dans cette session, Shell
est défini sur /bin/bash
. Si je lance urxvt depuis Terminator, urxvt démarre une session Bash.
Que dois-je faire d'autre pour changer mon Shell par défaut en poisson?
(Voir aussi cette question , mais ce n'est pas un doublon car j'ai suivi ces instructions et redémarré. Plusieurs fois maintenant. )
La plupart des terminaux (au moins gnome-terminal, urxvt et XTerm, par exemple) démarrés dans un environnement de bureau tel que Unity utilisent la variable d'environnement Shell
pour sélectionner le shell lors de leur lancement.
Shell
devrait automatiquement être défini sur votre shell par défaut répertorié dans /etc/passwd
, mais la variable peut être remplacée lorsque vous vous connectez. Assurez-vous de ne pas avoir défini Shell=/bin/bash
ou quelque chose de similaire dans un fichier affectera toute votre session de bureau. Ces fichiers incluent:
~/.profile
~/.pam_environment
/etc/environment
/etc/profile
De plus, si des scripts tels que ~/.bashrc
ou ~/.bash_profile
sont appelés par ces autres fichiers de démarrage et qu'il existe une ligne export Shell=/bin/bash
, elle affectera également la totalité de la session de bureau.
Je sais que c'est acceptable/encouragé, mais je déteste toujours répondre à ma propre question. Néanmoins, cela pourrait être utile à quelqu'un à l'avenir. Merci à @heemayl et @muru de m'aider à enquêter.
Pour définir fish
comme shell par défaut pour gnome-terminal
, à partir de gnome-terminal
, accédez à:
Edit > Profile Preferences
puis allez à l'onglet Title and Command
, vous obtiendrez:
Changez le comme:
Maintenant, chaque fois que vous démarrez une nouvelle instance de gnome-terminal
, fish
sera démarré à la place de bash
.