Bash'i varsayılan kabuk olarak kullanma


21

El Capitan 10.11.3'ü bash sürüm 3.x ile çalıştırıyorum, bu yüzden bash'ı güncellemeye karar verdim:

brew install bash

Brew yeni bash'ı / usr / local / Cellar / bash altına yerleştirir:

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.

Gördüğünüz gibi /etc/shells, yeni bash'ı kullanmak için güncellemem gerektiğinden bahsediyor . Ancak mevcut kabuğu kapattıktan / yeniden açtıktan sonra bash --versionşimdi 4.3.42 kullandığımı söylüyor, bu yüzden yeni sürümün otomatik olarak kullanıldığını kaputun altında neler olduğunu merak ediyorum?


Mevcut mermiyi nasıl kapattınız / yeniden açtınız?
user151019

@ Terminal simgesine sağ tıklayın -> çıkın, terminal simgesine sol tıklayın
Mike

Yanıtlar:


8

Kabuğunuzu değiştirmek için chsh komutunu kullanabilirsiniz. Sizin durumunuzda, demlemek üretilen bash ile, onu ayarlamanız gerekir /usr/local/bin/bash. Bunu da koymalısın /etc/shells.

Sorunuza gelince echo $BASH_VERSIONsize mevcut kabuğun sürümünü söyleyecektir . bash --versioniçindeki ilk bash'ın sürümünü söyler $PATH. Dolayısıyla, sürüme bakma şekliniz size çalıştırdığınız sürümü söylemiyordu.


Tamam sanırım anlıyorum. Ama bu demlemek yolumu bir put / usr / local / bash olarak değiştirdi demek değil mi? Veya / usr / local / bash PATH'de varsayılan mı?
Mike

Tamam sudo stat -x /etc/paths, demlemek için değiştirilmediğini söylüyor (yine de sudo'ya ihtiyacınız olacak). Bu yüzden varsayılan olmalı. Ve haklı olduğunu düşünüyorum, adımlarınızı yaptıktan sonra echo $ BASH_VERSION şimdi 4.3.42 geri dönüyor. Teşekkürler Merm!
Mike

26
brew install bash
sudo nano /etc/shells

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

# save and quit via kntrl + x

Şimdi, böyle bir şey görmeniz gerekiyor:

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!

Şimdi varsayılan kabuğunuzu ayarlayın:

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

Şimdi Terminal'den çıkın ve tekrar açın! Tamam olup olmadığını kontrol et?

echo $BASH_VERSION # 4.3.42(1)-release

bu aynı yöntemin de işe yaradığı zshve fishmermileri olduğu açık olmayabilir .
Andy
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.