web-dev-qa-db-fra.com

Comment faire de Bash mon shell par défaut sur Ubuntu?

J'ai un .bash_profile dans mon répertoire personnel, mais il ne s'exécute pas à la connexion. Si je fais ce qui suit, alors les choses semblent être comme je l’attendais:

ssh myhost
bash
source ~/.bash_profile

Mais normalement, tout se passe lors de la connexion. Pensées?

90
James A. Rosen

Utilisation:

chsh

Entrez votre mot de passe et indiquez le chemin d'accès au shell que vous souhaitez utiliser.

Pour Bash, ce serait /bin/bash. Pour Zsh, ce serait /usr/bin/zsh.

155
akira

En plus de la réponse d'Akira, vous pouvez également éditer votre fichier /etc/passwd pour spécifier votre shell par défaut.

Vous trouverez une ligne comme celle-ci:

john:x:1000:1000:john,,,:/home/john:/bin/sh

Le shell est spécifié à la fin.

35
John T

Activer bash:

$ /bin/bash

Changer de shell pour l'utilisateur:

$ Sudo usermod -s /bin/bash username

où:

  -s, --Shell SHELL             new login Shell for the user account
2
Umanshield

Une alternative consiste à renommer votre script de démarrage en .profile. Ce fichier est en train d’être source par la plupart des shells Unix .

2
mathk

Vous pouvez vérifier votre programme de terminal. Il peut être configuré pour exécuter/bin/sh plutôt que/bin/bash

Bash exécute .bash_profile uniquement pour les sessions de connexion. .bashrc est exécuté pour toutes les sessions bash, pas seulement les sessions de connexion. Essayez de rechercher .bash_profile à partir de .bashrc (évitez les dépendances circulaires!) Ou configurez votre programme de terminal pour qu'il exécute/bin/bash -l en tant que programme Shell.

2

Il n’ya pas assez d’informations dans votre question pour que je puisse le dire, mais j’ai déjà rencontré le même problème. En supposant que vous ayez déjà défini/bin/bash dans votre entrée de mot de passe, il se peut que ce soit la façon dont votre terminal démarre.

Si vous essayez de lancer un terminal graphique, dites gnome-terminal, vous vous attendez peut-être à ce que le shell lise vos fichiers de démarrage bash. Cependant, cela ne se produit pas sur Ubuntu et peut-être sur d'autres systèmes par défaut.

La façon dont je l'ai corrigé sur Ubuntu consiste à éditer les préférences de gnome-terminal et à définir la commande de démarrage sur bash -l. -l est l'abréviation de --login. Cela indique à bash de démarrer en tant que shell de connexion, ce qui lui permet de charger les scripts de démarrage au fur et à mesure que vous vous connectez lors de la connexion via ssh.

Je suis sûr que la raison en est bonne, mais j’ai trouvé cela surprenant et un peu gênant de partager les mêmes profils sur les systèmes linux, cywgin et macos.

0
edk750