Comment utiliser bash comme shell par défaut

21

J'utilise El Capitan 10.11.3 avec la version bash 3.x, j'ai donc décidé de mettre à jour bash via:

brew install bash

Brew place le nouveau bash sous / usr / local / Cellar / bash:

brew info bash

bash: stable 4.3.42 (bottled), devel 4.4-beta, HEAD
Bourne-Again SHell, a UNIX command interpreter
https://www.gnu.org/software/bash/
/usr/local/Cellar/bash/4.3.42 (59 files, 7.3M) *
Poured from bottle
From: https://github.com/Homebrew/homebrew/blob/master/Library/Formula/bash.rb
==> Dependencies
Required: readline 
==> Caveats
In order to use this build of bash as your login shell,
it must be added to /etc/shells.

Comme vous pouvez le voir, brew mentionne que je dois mettre à jour /etc/shellspour utiliser le nouveau bash. Mais après avoir fermé / rouvert le shell actuel bash --versionme dit que maintenant j'utilise déjà 4.3.42 donc je me demande ce qui s'est passé sous le capot que la nouvelle version est automatiquement utilisée?

Mike
la source
Comment avez-vous fermé / rouvert le shell actuel?
user151019
@Mark clic droit sur l'icône du terminal -> quitter, clic gauche sur l'icône du terminal
Mike

Réponses:

8

Vous pouvez utiliser la commande chsh pour changer votre shell. Dans votre cas, avec bash généré par brew, vous devez le régler sur /usr/local/bin/bash. Vous devriez également mettre cela /etc/shells.

Quant à votre question echo $BASH_VERSIONvous dira la version du shell actuel . bash --versionvous indique la version du premier bash de votre $PATH. Donc, la façon dont vous regardiez la version ne vous indiquait pas la version que vous exécutiez.

MERM
la source
Ok je pense que je comprends. Mais cela ne signifie-t-il pas que brew a modifié mon chemin en mettant / usr / local / bash en chemin? Ou est / usr / local / bash par défaut dans PATH?
Mike
Ok sudo stat -x /etc/pathsme dit qu'il n'a pas été modifié par brew (vous aurez quand même besoin de sudo). Il faut donc que ce soit par défaut. Et je pense que vous avez raison, après avoir fait vos pas, echo $ BASH_VERSION retourne maintenant 4.3.42. Merci Merm!
Mike
26
brew install bash
sudo nano /etc/shells

# add to last line
/usr/local/bin/bash

# save and quit via kntrl + x

Maintenant, vous devez voir quelque chose comme ceci:

cat /etc/shells

# List of acceptable shells for chpass(1).
# Ftpd will not allow users to connect who are not using
# one of these shells.

/bin/bash
/bin/csh
/bin/ksh
/bin/sh
/bin/tcsh
/bin/zsh
/usr/local/bin/bash  # we added this!

Définissez maintenant votre shell par défaut:

chsh -s /usr/local/bin/bash $USER # this will set for the current user.

Maintenant, quittez Terminal et rouvrez-le! Vérifiez si tout va bien?

echo $BASH_VERSION # 4.3.42(1)-release
vigo
la source
pourrait ne pas être évidente cette même méthode fonctionne également pour zshet fishcoquilles.
Andy