J'ai été surpris de ne pas avoir déjà trouvé cette question sur le site. Donc aujourd'hui $
est apparu après m'être connecté en tant que nouvel utilisateur. C'était inattendu car l'invite de mon utilisateur principal commence par username@computername:~$
.
Alors, comment puis-je passer de cet autre Shell à bash?
En supposant que le shell inconnu prend en charge l'exécution d'une commande absolue, vous pouvez essayer: /bin/bash
Pour changer le Shell par défaut, j'utiliserais chsh(1)
. Exemple d'utilisation: chsh -s /bin/bash $USER
Vous tapez bash
. Si vous voulez que ce soit un changement permanent, le Shell par défaut est /bin/bash
en modifiant /etc/passwd
.
Voici quelques extraits de mon /etc/passwd
:
avahi:x:84:84:Avahi daemon:/:/bin/false
xenoterracide:x:1000:100::/home/xenoterracide:/bin/zsh
postgres:x:88:88::/var/lib/postgres:/bin/zsh
bob:x:1001:1001::/home/bob:/bin/bash
usbmux:x:140:140:usbmux user:/:/sbin/nologin
Le tout dernier champ contient le Shell, modifiant le champ après le dernier :
à un Shell valide ou invalide fonctionnera. /bin/false
et /sbin/nologin
les deux signifient que l'utilisateur n'a pas de véritable shell de connexion, bien que si pam n'est pas configuré correctement, cela ne signifie pas qu'il ne peut pas se connecter (j'ai signalé un bug à ce sujet dans Arch Linux, car vous pouvez vous connecter graphiquement sans avoir un shell de connexion). /bin/bash
et /bin/zsh
sont tous deux des shells valides, voir /etc/shells
pour une liste des shells valides sur vos systèmes. Voici mon /etc/shells
si vous êtes intéressé.
/bin/sh
/bin/bash
/bin/ksh
/bin/zsh
/bin/dash
Oui, vous pouvez utiliser chsh
ou usermod
pour faire les mêmes choses, n'oubliez pas que ce ne sont que des fichiers texte structurés et TIMTOWTDI.
Si chsh ou l'édition manuelle de la configuration ne fonctionne pas, mais qu'un script ~/.profile est exécuté lors de la connexion, ajoutez cette ligne:
exec /bin/bash --login