Cách sử dụng bash làm shell mặc định


20

Tôi đang chạy El Capitan 10.11.3 với bash phiên bản 3.x vì vậy tôi quyết định cập nhật bash qua:

brew install bash

Brew đặt bash mới dưới / 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.

Như bạn có thể thấy đề cập đến bia mà tôi cần cập nhật /etc/shellsđể sử dụng bash mới. Nhưng sau khi đóng / mở lại trình bao hiện tại bash --versioncho tôi biết rằng bây giờ tôi đã sử dụng 4.3.42 vì vậy tôi tự hỏi điều gì đã xảy ra dưới mui xe rằng phiên bản mới được sử dụng tự động?


Làm thế nào bạn đóng / mở lại vỏ hiện tại?
dùng151019

@Mark nhấp chuột phải vào biểu tượng thiết bị đầu cuối -> thoát, nhấp chuột trái vào biểu tượng thiết bị đầu cuối
Mike

Câu trả lời:


8

Bạn có thể sử dụng lệnh chsh để thay đổi shell của bạn. Trong trường hợp của bạn, với bash brew được tạo, bạn nên đặt nó thành /usr/local/bin/bash. Bạn cũng nên đặt cái này vào /etc/shells.

Như câu hỏi của bạn echo $BASH_VERSIONsẽ cho bạn biết phiên bản của shell hiện tại . bash --versioncho bạn biết phiên bản của bash đầu tiên trong của bạn $PATH. Vì vậy, cách bạn nhìn vào phiên bản không cho bạn biết phiên bản mà bạn đang chạy.


Ok tôi nghĩ tôi hiểu. Nhưng điều đó không có nghĩa là brew đã sửa đổi đường dẫn của tôi thành put / usr / local / bash thành path? Hoặc là / usr / local / bash mặc định trong PATH?
Mike

Ok sudo stat -x /etc/pathsnói với tôi rằng nó không được sửa đổi bởi brew (dù sao bạn cũng sẽ cần sudo). Vì vậy, nó phải được mặc định. Và tôi nghĩ bạn đã đúng, sau khi thực hiện các bước của bạn, tiếng vang $ BASH_VERSION hiện trả về 4.3.42. Cảm ơn mẹ!
Mike

25
brew install bash
sudo nano /etc/shells

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

# save and quit via kntrl + x

Bây giờ, bạn cần phải xem một cái gì đó như thế này:

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!

Bây giờ đặt shell mặc định của bạn:

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

Bây giờ hãy thoát Terminal và mở lại! Kiểm tra xem tất cả có ổn không?

echo $BASH_VERSION # 4.3.42(1)-release

có thể không rõ ràng phương pháp tương tự này cũng hoạt động cho zshfishshell.
Andy
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.