Come usare bash come shell di default

16

Sono in esecuzione El Capitan 10.11.3 con bash versione 3.x, quindi ho deciso di aggiornare bash tramite:

brew install bash

Brew posiziona la nuova bash in / 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.

Come puoi vedere menzioni sulla birra che devo aggiornare /etc/shells per usare la nuova bash. Ma dopo aver chiuso / riaperto la shell corrente bash --version mi dice che ora sto già usando 4.3.42 quindi mi chiedo che cosa sia successo sotto la cappa che la nuova versione viene usata automaticamente?

    
posta Mike 22.01.2016 - 15:48
fonte

2 risposte

8

Puoi usare il comando chsh per cambiare la tua shell. Nel tuo caso, con brew generato bash, dovresti impostarlo su /usr/local/bin/bash . Dovresti inserire anche questo in /etc/shells .

Per quanto riguarda la tua domanda echo $BASH_VERSION ti dirà la versione della shell attuale . bash --version indica la versione della prima bash in $PATH . Quindi il modo in cui stavi guardando la versione non ti indicava la versione che stavi utilizzando.

    
risposta data 22.01.2016 - 16:21
fonte
19
brew install bash
sudo nano /etc/shells

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

# save and quit via kntrl + x

Ora, devi vedere qualcosa di simile a questo:

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!

Ora imposta la tua shell predefinita:

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

Ora esci da Terminal e riaprilo! Controlla se tutto ok?

echo $BASH_VERSION # 4.3.42(1)-release
    
risposta data 29.03.2016 - 22:23
fonte

Leggi altre domande sui tag