Comment est-il possible de changer le shell par défaut? La env
commande dit actuellement:
SHELL=/bin/tcsh
et je veux changer cela en Bash.
Comment est-il possible de changer le shell par défaut? La env
commande dit actuellement:
SHELL=/bin/tcsh
et je veux changer cela en Bash.
Réponses:
Essayez la commande linux chsh
.
La commande détaillée est chsh -s /bin/bash
. Il vous demandera d'entrer votre mot de passe. Votre shell de connexion par défaut est /bin/bash
maintenant. Vous devez vous déconnecter et vous reconnecter pour voir ce changement.
Ce qui suit est extrait de la page de manuel:
La commande chsh modifie le shell de connexion utilisateur. Cela détermine le nom de la commande de connexion initiale des utilisateurs. Un utilisateur normal peut uniquement changer le shell de connexion pour son propre compte, le superutilisateur peut changer le shell de connexion pour n'importe quel compte
Cette commande modifiera définitivement le shell de connexion par défaut.
Remarque: Si votre compte d'utilisateur est distant, par exemple lors de l'authentification Kerberos (par exemple, Enterprise RHEL), vous ne pourrez pas l'utiliser chsh
.
chsh: can only change local entries; use ypchsh instead
. Alors ypchsh n'a aucune -s
option
/etc/passwd
, mais je ne l'ai pas revérifié.
exec /bin/bash
à ~/.profile
et cela m'a permis de me connecter directement à bash sans apporter de modifications au serveur. (Le shell par défaut d'origine était juste /bin/sh
)
exit
bash? Voulez-vous déconnecter le serveur directement ou simplement quitter le bash et dans le sh et un autre exit
requis pour vous déconnecter du serveur?
Vous pouvez modifier le fichier passwd directement pour l'utilisateur particulier ou utiliser la commande ci-dessous
chsh -s /usr/local/bin/bash username
Ensuite, déconnectez-vous et connectez-vous
which bash
avant d'appeler la commande ci-dessus; votre kilométrage peut varier selon l'emplacement. Dans mon cas, il a été trouvé dans/bin/bash
chsh
commande fait partie du util-linux
package; et chsh -s $(which bash) $USER
devrait avoir le même résultat que ci-dessus.
-l
option: "imprimer la liste des coquilles".
chsh -s /bin/bash username
pour moi
Vous devriez avoir un «squelette» quelque part /etc
, probablement /etc/skeleton
, ou vérifier les paramètres par défaut, probablement /etc/default
ou quelque chose. Ce sont des scripts qui définissent les variables d'environnement standard définies lors d'une connexion.
Si c'est juste pour votre propre compte: vérifiez le fichier (caché) ~/.profile
et ~/.login
. Ou générez-les, s'ils n'existent pas. Ceux-ci sont également évalués par le processus de connexion.
/etc/default/useradd