Sono nuovo di OS X. Sto utilizzando OS X Lion su un MacBook Pro. È sicuro aggiornare la shell bash usando Homebrew:
$ brew install bash
Se sicuro, come faccio a renderlo l'istanza predefinita della shell che corro attraverso Terminale?
Grazie!
I binari in /{,usr/}{,s}bin/
di solito non dovrebbero essere sostituiti con altri file. Altri programmi si aspettano che siano le versioni fornite con OS X e vengono sostituite dagli aggiornamenti del sistema operativo.
Dopo aver eseguito brew install bash
, puoi cambiare la shell di default in modo sicuro:
/usr/local/bin/bash
a /etc/shells
chsh -s /usr/local/bin/bash
. Le impostazioni nel terminale o in iTerm 2 normalmente non devono essere modificate. Entrambi hanno l'abitudine di aprire nuove finestre con una shell di login della shell predefinita.
La shell di default può anche essere cambiata da Preferenze di Sistema o con dscl, ma tutte e tre le opzioni modificano solo /var/db/dslocal/nodes/Default/users/$USER.plist
.
Potrei sbagliarmi qui, ma per quanto ne so brew
installerebbe la propria istanza di bash
, poiché brew funziona sotto /usr/local/bin
mentre i valori di default del sistema funzionano sotto /bin
(e /usr/bin
) .
Informazioni su Terminale, puoi rendere le shell aperte con il tuo comando personalizzato. Vai a Preferenze > Avvio e seleziona Apri shell con: Comando (percorso completo) . Digita semplicemente il percorso del tuo nuovo bash
e vuala!
Spero che ti aiuti!
BTW: Backup! Il miglior consiglio in queste situazioni!
Molto prima di fare qualsiasi cosa, fai il backup del tuo file corrente (ovviamente, ma merita sempre di essere detto)
sudo cp /bin/bash /bin/bash.3.2.bk
Quindi crea un link simbolico all'eseguibile bash scaricato da Homebrew. Penso che sarà in / usr / local / Cellar, quindi
sudo ln -s /usr/local/Cellar/bash/4.2.10/bin/bash /bin/bash
Ora / bin / bash punta al file nella tua directory usr / local
Penso che sia sicuro se si avvia appena
brew install bash
e quindi aggiungilo come shell predefinita
chsh -s /usr/local/bin/bash
dato che stai solo modificando il tuo attuale utente. Tuttavia, ho notato che il mio ~ / .profile predefinito è
if [ "/bin/bash" == $BASH ]; then
source ~/.bashrc
fi
quindi deve essere aggiornato. L'ho cambiato in
if [ "bash" == $(basename $BASH) ]; then
source ~/.bashrc
fi