2009-09-25 12:03:09 +0000 2009-09-25 12:03:09 +0000
107
107
Advertisement

Comment faire pour que Bash soit mon shell par défaut sur Ubuntu ?

Advertisement

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

ssh myhost
bash
source ~/.bash_profile

Mais normalement, tout se passe à la connexion. Des idées ?

Advertisement
Advertisement

Réponses (8)

176
176
176
2009-09-25 12:08:58 +0000

Utilisation :

chsh

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

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

37
37
37
2009-09-25 12:09:20 +0000

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 cet exemple :

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

Le shell est spécifié à la fin.

4
Advertisement
4
4
2009-09-25 12:14:23 +0000
Advertisement

Vous pouvez vérifier le programme de votre 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 pour les sessions de connexion. Essayez de trouver .bash_profile dans .bashrc (évitez la dépendance circulaire !) ou de configurer votre programme terminal pour exécuter /bin/bash -l comme un programme shell.

4
4
4
2018-01-25 18:44:30 +0000

Activez la fonction Bash :

$ /bin/bash

Changer le shell pour l'utilisateur :

$ sudo usermod -s /bin/bash username

où :

-s, --shell SHELL new login shell for the user account
2
Advertisement
2
2
2010-06-01 11:40:25 +0000
Advertisement

Une alternative consiste à renommer votre script de démarrage en .profile. Ce fichier est le source de la plupart des Unix shells .

1
1
1
2019-11-17 19:17:11 +0000

Si vous ne voyez pas votre nom d'utilisateur dans le fichier /etc/passwd [c'est le cas lorsque votre système est sous le contrôle d'un autre domaine, par exemple dans les sociétés informatiques] ou s'il est indiqué “utilisateur introuvable” avec l'option chsh, le processus ci-dessous pourrait vous aider.

La logique derrière l'astuce ci-dessous -> Sur Ubuntu, /bin/sh est un tiret. Vous pouvez passer votre système à l'utilisation de bash. Sur Ubuntu, /bin/sh est un lien symbolique vers dash. Pour le changer, lancez

sudo dpkg-reconfigure dash

Et appuyez sur Non pour passer à bash.

Maintenant, allez dans Terminal->Edit->preferences->Command et cochez la case avec l'instruction

Run command as login shell

Et c'est tout.

1
Advertisement
1
1
2019-06-27 13:29:35 +0000
Advertisement

Pour faire de tout shell votre valeur par défaut, vérifiez d'abord qu'il est installé et reconnu sur votre ordinateur en regardant le contenu de /etc/shells :

$ cat /etc/shells
# /etc/shells: valid login shells
/bin/sh
/bin/bash
/usr/bin/bash
/bin/rbash
/usr/bin/rbash
/bin/dash
/usr/bin/dash
/usr/bin/fish

Puis utilisez chsh pour changer votre shell :

$ sudo chsh -s /usr/bin/bash $(whoami) # or sudo chsh -s /bin/bash $(whoami)

Références

  1. https://linux.die.net/man/1/cat
  2. https://linux.die.net/man/1/whoami
  3. https://linux.die.net/man/5/shells
  4. https://linux.die.net/man/1/chsh
  5. [ https://linux.die.net/man/1/chsh ]0x3& 5.
0
0
0
2018-09-15 19:37:41 +0000

Il n'y a pas assez d'informations dans votre question pour que je puisse en être sûr, mais j'ai déjà rencontré le même problème. En supposant que vous avez déjà configuré /bin/bash dans votre mot de passe, il se peut que ce soit la façon dont votre terminal se lance.

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

La façon dont je l'ai corrigé sur Ubuntu est d'éditer les préférences du terminal gnome-terminal, et de régler 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 fait charger les scripts de démarrage comme vous le faites lorsque vous vous connectez via ssh.

Je suis sûr qu'il y a une bonne raison pour que ce soit ainsi, mais j'ai trouvé cela surprenant et plus qu'un peu ennuyeux car je partage les mêmes profils sur les systèmes linux, cywgin et macos.

Advertisement

Questions connexes

19
12
11
6
4
Advertisement