Question 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 lors de la connexion. Si je fais ce qui suit, alors les choses semblent se dérouler comme prévu:

ssh myhost
bash
source ~/.bash_profile

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


78
2017-09-25 12:03


origine


Assurez-vous également de ne pas avoir de ~/.profile ou ~/.bash_login, comme seul l'un des trois est originaire. (J'ai oublié l'ordre exact.) - grawity
Pourquoi avez-vous une question différente dans le titre et une autre dans le corps de votre message? - pabouk


Réponses:


Utilisation:

chsh

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

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


139
2017-09-25 12:08



+1 - Je ne sais pas pourquoi l'OP a décidé que l'édition du fichier de mot de passe était un meilleur choix, mais c'est la meilleure réponse. - kdgregory
Ouais, il m'a battu, c'est la méthode standard. - John T
Et sur Ubuntu, le chemin du shell que vous voulez utiliser est ... / bin / bash (et / bin / sh n'est pas la même) - Harry Wood
Ou vous pouvez utiliser sudo chsh -s /bin/bash username - Oleg Vaskevich
Vous devez vous déconnecter et vous reconnecter pour voir ce changement. - Neil Traft


En plus de la réponse d’akira, vous pouvez également modifier votre / etc / passwd fichier 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.


33
2017-09-25 12:09



Mieux vaut utiliser la commande 'chsh' comme suggéré par Akira - moins de chance de visser quelque chose par erreur. - Lars Haugseth
ne pas mentionner «chsh» est disponible quand vous ne pouvez pas écrire dans / etc / passwd - quack quixote
Mais si vous avez ainsi accès à la modification de la /etc/passwd et vous êtes prudent, la réponse de John fait bon usage des outils fournis par le système. - AJP
Vous devez vous déconnecter et vous reconnecter pour voir ce changement. - Neil Traft
Si vous exécutez un serveur sans mot de passe utilisateur - en fournissant uniquement un accès via des clés ssh publiques / privées ... cela a aussi beaucoup de sens. chsh nécessite un mot de passe. - Keith John Hutchison


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 le fichier .bash_profile à partir de .bashrc (évitez les dépendances circulaires!) Ou configurez votre programme terminal pour qu'il exécute / bin / bash -l en tant que programme shell.


2
2017-09-25 12:14



le programme terminal n’a rien à voir avec le problème car c’est le sshd sur la machine distante, qui génère le nouveau shell. - akira


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


2
2018-06-01 11:40





Activer 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

0
2018-01-25 18:44



(1) Que voulez-vous dire par "enable bash"? (2) L'utilisateur veut changer son propre shell de connexion sur un système distant. Pourquoi supposez-vous qu'il a sudo accès sur ce système? Pourquoi fournissez-vous des instructions en termes de modification du shell de connexion d'un autre utilisateur? - G-Man