Cara menggunakan bash sebagai shell default

20

Saya menjalankan El Capitan 10.11.3 dengan versi bash 3.x jadi saya memutuskan untuk memperbarui bash melalui:

brew install bash

Brew menempatkan bash baru di bawah / 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.

Seperti yang Anda lihat minuman menyebutkan bahwa saya perlu memperbarui /etc/shellsuntuk menggunakan bash baru. Tetapi setelah menutup / membuka kembali shell saat ini bash --versionmemberitahu saya bahwa sekarang saya sudah menggunakan 4.3.42 jadi saya bertanya-tanya apa yang terjadi di bawah tenda bahwa versi baru secara otomatis digunakan?

Mike
sumber
Bagaimana Anda menutup / membuka kembali shell saat ini?
user151019
@Mark klik kanan pada ikon terminal -> berhenti, klik kiri pada ikon terminal
Mike

Jawaban:

8

Anda dapat menggunakan perintah chsh untuk mengubah shell Anda. Dalam kasus Anda, dengan pembuatan bir buatan, Anda harus mengaturnya /usr/local/bin/bash. Anda juga harus memasukkan ini /etc/shells.

Adapun pertanyaan Anda echo $BASH_VERSIONakan memberi tahu Anda versi shell saat ini . bash --versionmemberi tahu Anda versi bash pertama di $PATH. Jadi cara Anda melihat versi itu tidak memberi tahu Anda versi yang sedang Anda jalankan.

MERM
sumber
Ok saya rasa saya mengerti. Tapi bukankah itu berarti minuman memodifikasi jalur saya menjadi put / usr / local / bash to path? Atau / usr / local / bash default di PATH?
Mike
Ok sudo stat -x /etc/pathsmengatakan kepada saya bahwa itu tidak dimodifikasi oleh minuman (Anda akan memerlukan sudo pula). Jadi itu pasti default. Dan saya pikir Anda benar, setelah melakukan langkah-langkah Anda echo $ BASH_VERSION sekarang mengembalikan 4.3.42. Terima Merm!
Mike
25
brew install bash
sudo nano /etc/shells

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

# save and quit via kntrl + x

Sekarang, Anda perlu melihat sesuatu seperti ini:

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!

Sekarang atur shell default Anda:

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

Sekarang keluar dari Terminal dan buka kembali! Periksa apakah semuanya baik-baik saja?

echo $BASH_VERSION # 4.3.42(1)-release
vigo
sumber
mungkin tidak jelas metode yang sama ini juga berfungsi untuk zshdan fishshell.
Andy