web-dev-qa-db-fra.com

Comment passer d'un shell inconnu à bash?

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?

41
mouche

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

62
Kevin M

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.

20
xenoterracide

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
12
Kevin Cantu