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?


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.


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

pourrait ne pas être évidente cette même méthode fonctionne également pour zshet fishcoquilles.
Andy
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.