Як використовувати bash як оболонку за замовчуванням


21

Я запускаю El Capitan 10.11.3 з bash версією 3.x, тому я вирішив оновити bash через:

brew install bash

Заваріть місця для нового bash під / usr / local / льох / 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 --versionкаже мені, що зараз я вже використовую 4.3.42, тому мені цікаво, що сталося під кришкою, що нова версія автоматично використовується?


Як ви закрили / повторно відкрили поточну оболонку?
користувач151019

@ Марк правою кнопкою миші на піктограмі терміналу -> вийдіть, лівою кнопкою миші на піктограмі терміналу
Майк

Відповіді:


8

Ви можете скористатися командою chsh для зміни вашої оболонки. У вашому випадку, з створеним варінням bash, ви повинні встановити його /usr/local/bin/bash. Ви також повинні це поставити /etc/shells.

Що стосується вашого питання, echo $BASH_VERSIONто вам підкаже версія поточної оболонки. bash --versionповідомляє вам версію першого баша у вашому $PATH. Тож те, як ви дивилися на версію, не розповідало вам версію, яку ви працюєте.


Гаразд я думаю, що я розумію. Але чи це не означає, що варіння змінило мій шлях на путь / usr / local / bash до шляху? Або / usr / local / bash за замовчуванням у PATH?
Майк

Гаразд sudo stat -x /etc/pathsкаже мені, що вона не була змінена заваркою (у будь-якому випадку вам знадобиться судо). Отже, це повинно бути за замовчуванням. І я думаю, що ти маєш рацію, після виконання кроків відлуння $ BASH_VERSION тепер повертається 4.3.42. Дякую Мерм!
Майк

26
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

може бути не очевидним, що цей же метод працює zshі для fishоболонок.
Енді
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.