Відповіді:
Використовуйте chsh
утиліту так:
chsh -s bash
Apple chsh
трохи змінилася на Mac OS X порівняно з chsh
ви, наприклад, у Linux. Ви можете прочитати їх на сторінці chsh Mac OS X Man .
Зауважте, що вам буде дозволено перейти лише до оболонки, зазначеної в /etc/shells
. Зазвичай це нормально, але це означає, що якщо ви хочете встановити Bash 4 (від Homebrew, MacPorts або створити свій власний), вам потрібно додати рядок до /etc/shells
. (Я натрапив на це кілька тижнів тому, і подумав, що це може допомогти іншим дізнатися ...)
Редагувати : Тім Сміт вказує, що ви можете обійти /etc/shells
обмеження, якщо запустити chsh
як root через sudo
. Напр., sudo chsh -s /usr/local/bin/my_shell $USER
Буде працювати, навіть якщо my_shell
це не вказано в /etc/shells
. Я вважаю за краще редагувати /etc/shells
, але врешті-решт, це використання в sudo
будь-якому випадку, оскільки ви не можете редагувати /etc/shells
як звичайний користувач. Так, можливо, шість з одного, півдесятка іншого.
/etc/shells
якщо не потрібно? З розуму я вважаю за краще зберігати системні файли однаковими.
/etc/shells
- файл у системі, який визначає розпізнані оболонки. Я змінюю цей файл, тому що хочу додати оболонку до списку розпізнаних оболонок. Мені це здається досить розумним.
chsh: bash: non-standard shell
chsh
поодинці, якщо ви намагаєтесь використовувати оболонку, яка не вказана в /etc/shells
.
/etc/shells
що мені здається дивним.
Для цього за допомогою GUI Mac OS X:
Зверніть увагу, що в цьому місці ви можете змінити домашній каталог, UUID, ідентифікатор користувача, ідентифікатор групи та коротке ім'я, якщо вам незручно із Терміналом. Існує подібне питання, розміщене і тут .
Використовуючи відповіді вище, я отримував повідомлення про помилку:
$ chsh -s zsh
Changing shell for myuser.
Password for myuser:
chsh: zsh: non-standard shell
Щоб обійти це:
sudo chsh -s zsh $(whoami)
whoami
в підпакеті - це змінити оболонку для вашого користувача, а не root.
Ще одна річ, якщо ви використовуєте домашню мову. Коли ви запускаєте команди як root (використовуючи sudo
), zsh вказує на / bin / zsh, що поставляється з OSX і може бути застарілим. Щоб використовувати сучасний, встановлений через домашню мову, використовуйте наступне:
sudo chsh -s $(which zsh) $(whoami)