デフォルトのシェルとしてbashを使用する方法


20

El Capitan 10.11.3をbashバージョン3.xで実行しているため、次の方法でbashを更新することにしました。

brew install bash

Brewは、新しいbashを/ 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.

ご覧の/etc/shellsように、新しいbashを使用するためには更新する必要があるという言及があります。しかし、現在のシェルbash --versionを閉じて再度開くと、現在4.3.42を使用していることがわかりますので、新しいバージョンが自動的に使用されるというフードの下で何が起こったのでしょうか?


現在のシェルをどのように閉じ/再開しましたか?
user151019

@Mark端末アイコンを右クリック->終了、端末アイコンを左クリック
マイク

回答:


8

chshコマンドを使用して、シェルを変更できます。あなたの場合、brewで生成されたbashでは、に設定する必要があり/usr/local/bin/bashます。これもに入れる必要があり/etc/shellsます。

あなたの質問に関してecho $BASH_VERSIONは、現在のシェルのバージョンを教えてくれます。bash --versionの最初のbashのバージョンを示します$PATH。そのため、バージョンを見る方法は、実行しているバージョンを伝えることではありませんでした。


わかりました。しかし、それはbrewが私のパスを変更し、/ usr / local / bashをパスに変更することを意味しないのですか?または、/ usr / local / bashはPATHのデフォルトですか?
マイク

Ok sudo stat -x /etc/pathsはbrewによって変更されていないことを教えてくれます(とにかくsudoが必要になります)。したがって、デフォルトでなければなりません。そして、私はあなたが正しいと思う、あなたのステップエコーをした後、$ BASH_VERSIONは4.3.42を返すようになりました。どうもありがとう!
マイク

25
brew install bash
sudo nano /etc/shells

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

# save and quit via kntrl + x

ここで、次のようなものを確認する必要があります。

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!

次に、デフォルトのシェルを設定します。

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

ターミナルを終了し、再度開きます!すべて大丈夫かどうかを確認しますか?

echo $BASH_VERSION # 4.3.42(1)-release

これと同じ方法でものために働く明白ではないかもしれないzshfishシェル。
アンディ
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.